Sharing rails fragments between formats
- by Julian
Hi I'm toying with mobile_fu and want to share some fragments between the different views. E.g.
views/
item/
view.html.erb
view.mobile.rb
shared/
_common.erb
In both view.html.erb and view.mobile.erb I want to share the same fragment '_common.erb' without having to specify the format (should you ever have to specify the format inside a fragment? It doesn't seem like The Rails Way?). Let's say for arguments's sake it's because it's in a helper or whatever -- the point is that I need to share fragments in a 'well-defined and Railsy way' across formats.
Let's take this fairly innocuous snippet
<% render :fragment => 'shared/common' %>
I've tried 3 file name conventions:
_common.html.erb only works for html /item/view/xx fails with 'shared/_common.erb not found')
however _common.erb fails for html and works for mobile (maybe mobile_fu is doing something wacky?) -- same error as for .html.erb version above
_common.rhtml does work for both
I'm thinking that: that rhtml works for both is a legacy hack and I'm loathe to rename all the shared fragments .rhtml to get the behaviour I want.
Any feedback gratefully welcome! Including 'you fundamentally don't understand how Rails works please RTFM here: http://....'
:)