Sharing rails fragments between formats
        Posted  
        
            by Julian
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by Julian
        
        
        
        Published on 2010-05-29T22:04:44Z
        Indexed on 
            2010/05/29
            22:12 UTC
        
        
        Read the original article
        Hit count: 257
        
ruby-on-rails
|mobile-fu
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/xxfails 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://....'
:)
© Stack Overflow or respective owner