gpt4 book ai didi

ruby-on-rails - Rails 部分集合为空?

转载 作者:行者123 更新时间:2023-12-04 05:49:07 24 4
gpt4 key购买 nike

我已经尝试弄清楚这个问题大约一个小时了。我有一个确实填充了成员模型对象的部分集合,当我尝试使用集合呈现它时:

<%= render :partial => 'list', :collection => @members %>

在我的 _list.html.erb 中,呈现的 html 中的 @member_id 和 @member_email 属性为空:

<%= check_box_tag('selected_member[]', @member_id, false) %>
<%= @member_email %>

View 正确呈现,我得到 3 个成员项目,但 ID 和电子邮件为空。

我做错了什么?如果我尝试使用“member_id”或“member.id”访问部分成员,我会得到“未定义的局部变量或方法‘member’”,很明显这不是正确的表示法。

现在我已经看到了一堆不同的例子,但收集方法是我需要走的路。我需要部分只处理每个成员,因为父 View 支持以不同方式对成员进行分组。如果我在部分中为每个成员实现一个循环,我将不得不将分组 View 代码也移到其中,它与父 View 中的输入字段交互。例如维护起来会很麻烦。

提前致谢。

最佳答案

当你这样做时:

<%= render :partial => 'list', :collection => @members %>

Rails 期望部分文件中的局部变量与部分文件本身同名,在本例中为 list

所以默认情况下,它不是member,而是像这样的list:

<%= check_box_tag('selected_member[]', list.id, false) %>
<%= list.email %>

如果您希望局部变量改为命名为 member,您应该重命名部分文件或使用此语法:

<%= render :partial => 'list', :collection => @members, :as => :member %>

此处有更多信息(第 3.4.5 节):http://guides.rubyonrails.org/layouts_and_rendering.html

关于ruby-on-rails - Rails 部分集合为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8706333/

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