将部分放在Application Helper Function Rails中的content_tag中

时间:2011-02-27 08:43:04

标签: ruby-on-rails helpers partials

我在我的视图中有这个,但我想清理它并将它全部放在帮助器中的方法中。

我知道如何将div和一些内容放在content_tag中。但是我如何传递部分?

 <% if show_content?(flash[:invitation]) %>
       <div id="invite_box">
       <%= render :partial => 'user/invite', :locals => {:user => @user } %>
       </div>
       <% elsif show_content?(flash[:confirmation]) %>
       <%= render :partial => 'user/invite_confirmation' %>
       <% end %>

1 个答案:

答案 0 :(得分:4)

如果invite部分应始终包含在invite_box div中,那么将该div放在部分内部是有意义的。

但是,您可以在帮助程序中执行此操作:

def show_invite_info
  if show_content?(flash[:invitation])
    content_tag(:div, :id => "invite_box") do
      render :partial => "user/invite", :locals => {:user => @user}
    end
  elsif show_content?(flash[:confirmation])
    render :partial => "user/invite_confirmation"
  end
end

然后在你的视图中做:

<%= show_invite_info %>