Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 将数据传递给rails分部_Ruby On Rails - Fatal编程技术网

Ruby on rails 将数据传递给rails分部

Ruby on rails 将数据传递给rails分部,ruby-on-rails,Ruby On Rails,编辑:解决方案非常有效。 我试图将数据传递给partial,并使用它来更改用户的角色。现在它只会更改一个用户的角色。渲染时,它仅显示并作用于用户的角色。首先 它被渲染的地方。我在本地传递用户。我用了第二个答案,因为第一个答案不起作用,给了我错误 <%= render :partial => 'roles', :locals => { :user => user } %> 'roles',:locals=>{:user=>user}%> 下面是部分_role.

编辑:解决方案非常有效。

我试图将数据传递给partial,并使用它来更改用户的角色。现在它只会更改一个用户的角色。渲染时,它仅显示并作用于
用户的角色。首先

它被渲染的地方。我在本地传递用户。我用了第二个答案,因为第一个答案不起作用,给了我错误

<%= render :partial => 'roles', :locals =>  { :user => user } %>
'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 %>

用户路径(user),:html=>{:method=>:put}do | f |%>
换角色
:复选框,:输入\u html=>{:选定=>user.role\u id}%>
'roles',:locals=>{:user=>user}%>

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

尝试更新这两条线,使用Rails“代码> DOMIOID())/Cuffer-Help创建“<代码>数据显示ID <代码> > <代码> ID <代码>的唯一匹配对,根据基础揭示模态文档:

<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">


这不起作用,尽管我觉得应该这样做。它仅显示和更改第一个用户的角色。谁登录并不重要,只要他们是管理员。我正在试图找出原因?如果将User.first传递给partial,则每次都会呈现数据库中第一个用户的数据。在一个循环中调用渲染部分行,该循环为希望该窗体显示的每个用户调用该行。我张贴了局部渲染的位置。它在我的用户的循环中。这在我的用户控制器的
index.html.erb
中。我的用户控制器索引操作提供了
@users=User.all
是的,我最近尝试过,得到了相同的结果。作为一个更好的健康检查,我删除了部分中所有的非erb。我拿出了所有的唱片和所有的东西。现在,它直接在表中呈现并正常工作。看来这可能与基础4揭示模态和它如何调用与数据显示ID。我的解决方案是不干净的。所以你的<代码>数据显示ID <代码>不是唯一的。“Change Role”链接总是显示该ID在页面中的第一次出现,因此它总是为第一个用户显示表单。您需要做一些类似于将
user.id
附加到id和的操作,以便它们匹配upProps好的先生。我两天来一直想把这件事说清楚。您帮助我了解了Rails中的一个整洁助手,我将花明天的时间进行研究。现在是凌晨3点,我必须在那美妙的音符上入睡。再次感谢。很高兴我能提供帮助,这里还有一个
dom\u class()
帮助程序可供查看。我正在阅读它们以供将来参考。好东西要知道。我不知道我是否会发现,因为我不知道我在寻找什么。
<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">