поместить частичку внутри тега content_tag в Rails вспомогательных функций приложений - PullRequest
2 голосов
/ 27 февраля 2011

У меня есть это, на мой взгляд, но я хотел бы очистить его и поместить все это в метод в помощнике.

Я знаю, как поместить 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 Ответ

4 голосов
/ 27 февраля 2011

Если частичное 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 %>
...