【问题标题】:Rails Partial with variable带变量的 Rails 部分
【发布时间】:2016-05-14 03:21:19
【问题描述】:

用户控制器

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

users/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>

我需要使用什么代码来渲染它?

【问题讨论】:

    标签: ruby-on-rails pagination renderpartial


    【解决方案1】:
    <div id="follow">
       <%= render partial: "users/follow_form", locals: {passUser: user} %>
    </div>
    

    这会将您的&lt;% users.each do |user| %&gt; 用户 传递给分配为passUser 的部分。您可以在 users/_follow_form 部分中获取此 passUser 变量,例如:

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

    查看this了解更多信息。

    【讨论】:

      猜你喜欢
      • 2016-01-10
      • 2019-10-24
      • 1970-01-01
      • 1970-01-01
      • 2012-08-28
      • 2012-06-21
      • 2013-01-16
      • 2011-06-09
      • 1970-01-01
      相关资源
      最近更新 更多