gpt4 book ai didi

ruby-on-rails - Ruby on Rails - 无法通过部分使用集合进行循环

转载 作者:行者123 更新时间:2023-12-04 07:11:17 25 4
gpt4 key购买 nike

我在使用 :collection 命令处理我在 Rails 中创建的表单中的部分时遇到问题。理想情况下,我想使用 :collection 命令,这样我就可以轻松地在我的 .rjs 模板中操作此部分(当复选框更改时,表单将提交并重新加载表单,这是一个待办事项列表)。

此代码有效:

<% form_for "list[]", :url => {:action => "checkbox_update"} do |f| %>
<ul id="lists_not_completed">
<% for @list in @lists %>
<%= render :partial => @list, :locals => {:f =>f, :complete => FALSE } %>
<% end %>
</ul>
<% end %>

部分:
<% if @list.completed == complete %>
<li><%= f.check_box :completed %>
<%=h @list.name %>

<%= link_to 'Show', list %>
<%= link_to 'Edit', edit_list_path(list) %>
<%= link_to 'Destroy', list, :confirm => 'Are you sure?', :method => :delete %></li>
<% end %>

这段代码不起作用,但我希望它使用这种形式:
<% form_for "list[]", :url => {:action => "checkbox_update"} do |f| %>
<ul id="lists_not_completed">
<%= render :partial => 'list', :collection => @lists, :locals => {:f =>f, :complete => FALSE } %>
</ul>
<% end %>

与非工作部分:
<% if list.completed == complete %>
<li><%= f.check_box :completed %>
<%=h list.name %>

<%= link_to 'Show', list %>
<%= link_to 'Edit', edit_list_path(list) %>
<%= link_to 'Destroy', list, :confirm => 'Are you sure?', :method => :delete %></li>
<% end %>

我收到错误:

object[] 命名但 object param 和 @object var 不存在或不响应 to_param: nil。它指的是这一行: <li><%= f.check_box :completed %> .我不确定为什么这不起作用,并尝试了很多很多不同的变体,但我无法让它工作。表格是否阻止我这样做? form_for 代码直接来自 Rails Way 手册,用于在表单中列出一个模型中的多个对象。

对此的任何帮助将不胜感激。

最佳答案

我认为问题是当您使用渲染 :partial 和 :collection 时,您没有在任何地方定义 @list。

当您调用 f.check_box 时,系统正在寻找 @list 以匹配 list[]

你可以在你的部分设置 @list = list 来解决这个问题。我想。

关于ruby-on-rails - Ruby on Rails - 无法通过部分使用集合进行循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/301115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com