0

我的表格是这样构建的:

<%= form_for @location do |f| %>
<%= f.fields_for :product_dates do |d| %>
<%= d.fields_for :products |p| %>
<%= p.text_field :tag_list,"data-pre" => @product.tags.map(&:attributes).to_json %>

现在,当我转到该页面时,使用该行时出现错误:"data-pre" => @product.tags.map(&:attributes).to_json 这是undefined method tags for nil:NilClass但是当我将其拿走时一切都很好。这是某种类型的 TokenInput 错误?其他人必须处理这个吗?

产品控制器:

def new
    @location = Location.new
    product_date = @location.product_dates.build
    product_date.products.build
end
4

1 回答 1

2

您只是没有设置@product变量 => 它是nil.

你应该展示你的控制器

编辑:

代替:

<%= p.text_field :tag_list,"data-pre" => @product.tags.map(&:attributes).to_json %>

和:

<%= p.text_field :tag_list,"data-pre" => p.object.tags.map(&:attributes).to_json %>

这也应该适用edit

这真的很有意义:你不能调用你没有设置的东西。

于 2011-07-17T07:38:14.637 回答