From b72598485ace03615a1c39f6a8720c6fe6cfa458 Mon Sep 17 00:00:00 2001 From: Harald Eilertsen Date: Wed, 25 Dec 2013 14:04:38 +0100 Subject: More sidebar module fixes. There was some problems with the approach in the previous commits. - render_collection (render @sidebar_modules in our case) requires that all objects return the same partial path. Ours may not do that, so we wrote our own `render_sidebar_modules`-helper. - The way render_partial finds the correct path to the partial is to append what's returned by to_partial_path with whatever root the parent view is in. That would require duplication of the partials under all the different engines namespaces. Our `render_sidebar_modules` does it differently, and just looks up the partial according to the root namespace. This means the sidebar_module code can move back under the root application so we don't mess up the refinery namespaces. - Finally found the proper way to link to a blog_post so that it works from all namespaces. The correct way is: refinery.blog_post_path(post) This works in views (and presumably helpers,) but not in controllers which is why we struggled with it before. --- app/helpers/sidebar_helper.rb | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 app/helpers/sidebar_helper.rb (limited to 'app/helpers') diff --git a/app/helpers/sidebar_helper.rb b/app/helpers/sidebar_helper.rb new file mode 100644 index 0000000..2ae3e95 --- /dev/null +++ b/app/helpers/sidebar_helper.rb @@ -0,0 +1,7 @@ +module SidebarHelper + def render_sidebar_modules(mods) + mods.map { |m| + render m.to_partial_path, :sidebar_module => m + }.join().html_safe + end +end -- cgit v1.2.3