访问 form_for 个对象的属性
Accessing form_for object's attributes
访问 form_for 中的变量之一时出现错误:
undefined local variable or method `goal'
部分代码如下:
<%= f.fields_for :goals do |builder| %>
<%= render 'goal_fields_public', :f => builder %>
<% end %>
表单代码如下:
= f.fields_for :goals do |goal|
= render 'goal_fields', f: goal
使用调试标签时,我可以看到@object 中包含我的目标子字段。
表格的填充按预期发生。我期待 goal.objects.name_of_subobject
工作正常,但由于某些原因它没有。
fields_for
将迭代一个集合,因此在每个 goal_fields
实例中,您将拥有一个 goal
表单构建器,您可以访问单个对象,而不是集合.
goal.object.name_of_subobject
编辑:部分内容发布后,您似乎复制了 fields_for
标签,导致代码如下:
f.fields_for :goals do |builder| %>
builder.fields_for :goals do |goal|
render 'goal_fields', f: goal
这里有 form_for
标签吗?要么您没有发布我们需要帮助您解决此问题的一半上下文,要么您的表单有很多问题。
(你也在混合 haml 和 erb,为什么?)
您的 'goal_fields' 局部变量可能引用局部变量 goal
而不是 f
。如果是这样,您可以按如下方式更改渲染调用:
= render 'goal_fields', goal: goal
访问 form_for 中的变量之一时出现错误:
undefined local variable or method `goal'
部分代码如下:
<%= f.fields_for :goals do |builder| %>
<%= render 'goal_fields_public', :f => builder %>
<% end %>
表单代码如下:
= f.fields_for :goals do |goal|
= render 'goal_fields', f: goal
使用调试标签时,我可以看到@object 中包含我的目标子字段。
表格的填充按预期发生。我期待 goal.objects.name_of_subobject
工作正常,但由于某些原因它没有。
fields_for
将迭代一个集合,因此在每个 goal_fields
实例中,您将拥有一个 goal
表单构建器,您可以访问单个对象,而不是集合.
goal.object.name_of_subobject
编辑:部分内容发布后,您似乎复制了 fields_for
标签,导致代码如下:
f.fields_for :goals do |builder| %>
builder.fields_for :goals do |goal|
render 'goal_fields', f: goal
这里有 form_for
标签吗?要么您没有发布我们需要帮助您解决此问题的一半上下文,要么您的表单有很多问题。
(你也在混合 haml 和 erb,为什么?)
您的 'goal_fields' 局部变量可能引用局部变量 goal
而不是 f
。如果是这样,您可以按如下方式更改渲染调用:
= render 'goal_fields', goal: goal