aboutsummaryrefslogtreecommitdiffstats
path: root/app/helpers
diff options
context:
space:
mode:
authorHarald Eilertsen <haraldei@anduin.net>2013-12-25 14:04:38 +0100
committerHarald Eilertsen <haraldei@anduin.net>2013-12-25 14:04:38 +0100
commitb72598485ace03615a1c39f6a8720c6fe6cfa458 (patch)
tree7838c2292eb05ea690331383908e3a36729af56f /app/helpers
parentde85692eb4cb19112e5b3a6d68c8867c65ff0da0 (diff)
downloadhmnoweb-b72598485ace03615a1c39f6a8720c6fe6cfa458.tar.gz
hmnoweb-b72598485ace03615a1c39f6a8720c6fe6cfa458.tar.bz2
hmnoweb-b72598485ace03615a1c39f6a8720c6fe6cfa458.zip
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.
Diffstat (limited to 'app/helpers')
-rw-r--r--app/helpers/sidebar_helper.rb7
1 files changed, 7 insertions, 0 deletions
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