Rails Partial с переменной

Контроллер пользователей

def index
    @users = User.all.paginate(page: params[:page])   
end

пользователи/index.html.erb

  <% @users.in_groups_of(3, false).each do |users| %>
    <% users.each do |user| %>
      <% unless current_user == user %>
        <div id="follow">
          ????????????
        </div>
      <% end %> 
    <% end %> 
  <% end %>
  <%= will_paginate @users %>

Я хочу превратить следующее в частичное, 'users/_follow_form'

<% if current_user.following?(user) %>
  <%= form_for(current_user.active_relationships.find_by(followed_id: user.id),
    html: { method: :delete }, remote: true) do |f| %>
        <%= f.submit "Unfollow", class: "btn btn-primary" %>
    <% end %>
  <% else %>
    <%= form_for(current_user.active_relationships.build, remote: true) do |f| %>
      <div><%= hidden_field_tag :followed_id, user.id %></div>
      <%= f.submit "Follow", class: "btn btn-primary" %>
    <% end %>
  <% end %>
</div>

Какой код мне нужно использовать для его отображения?


person Timmy Von Heiss    schedule 14.05.2016    source источник


Ответы (1)


<div id="follow">
   <%= render partial: "users/follow_form", locals: {passUser: user} %>
</div>

Это передаст вашего <% users.each do |user| %> пользователя частичному, назначенному как passUser. Вы можете получить эту переменную passUser в партиале users/_follow_form, например:

<% if current_user.following?(passUser) %>

Проверьте здесь, чтобы узнать больше.

person Emu    schedule 14.05.2016