ruby-on-rails - 将数据传递给 rails partial

标签 ruby-on-rails

编辑:解决方案完美运行。 dom_id

我正在尝试将数据传递给部分并使用它来更改用户的角色。现在它只会改变一个用户的角色。当它被呈现时,它只显示和作用于 User.first

的角色

渲染的地方。我通过本地人的用户。根据 this post我使用了第二个答案,因为第一个答案不起作用并且给了我错误。

<%= render :partial => 'roles', :locals =>  { :user => user } %>

下面是部分_role.html.erb

<div id="roleModal" class="reveal-modal">
   <%= semantic_form_for user, :url => user_path(user), :html => {:method => :put } do |f| %>
      <h3>Change Role</h3>
      <div class="reveal-modal-body">
         <%= f.input :roles, :as => :check_boxes, :input_html => { :selected => user.role_ids } %>
      </div>
      <a class="close-reveal-modal">&#215;</a> 
      <%= f.action :submit, :as => :button %>
   <% end %>

<% @users.each do |user| %>
<tr>
  <td><%= link_to user.name, user %></td>
  <td><%= user.email %></td>
  <td><%= user.created_at.to_date %></td>
  <td><%= user.roles.first.name.titleize unless user.roles.first.nil? %></td>
  <td>

     <a href="roles#<%= user.id %>" data-reveal-id="roleModal" class="button" type="button">Change role</a>
    <%= render :partial => 'roles', :locals =>  { :user => user } %>

  </td>
</tr>
<% end %>

最佳答案

您最初的问题是关于将局部变量传递给部分正确的。问题是使用非唯一的 ID 对来显示隐藏的表单。因此,显示链接始终会显示具有该 ID 的 div 的第一次出现,因此总是会更改第一个用户的角色。

尝试更新这两行以使用 Rails dom_id() 帮助程序创建 data-reveal-idid 的唯一匹配对根据 Foundation reveal modal docs:

<a href="roles#<%= user.id %>" data-reveal-id="<%= dom_id(user) %>" 
class="button" type="button">Change role</a>

<div id="<%= dom_id(user) %>" class="reveal-modal">

关于ruby-on-rails - 将数据传递给 rails partial,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15860602/

相关文章:

ruby-on-rails - 调试 502 Bad Gateway 错误 - Ubuntu、Nginx、Unicorn

ruby-on-rails - 导入 CSV 时,如何处理与关联对应的行中的数据?

ruby-on-rails - 命名空间模型上的 ActiveRecord 查询方法

ruby-on-rails - rails 3不为零

ruby-on-rails - 安装旧版本的 Elasticsearch

ruby-on-rails - 不使用 Tire::Model::Callbacks 更新轮胎索引

ruby-on-rails - 从 Django 到 Rails,您如何持续使用 Rails 模型?

ruby-on-rails - 如何使我的网络应用程序更加强大,以应对意外的流量峰值?

ruby-on-rails - Date.new 为 `div' :String 返回未定义的方法 "11"

javascript - 在服务器端使用浏览器 Javascript(在 Rails 3 中)