我的表格是这样构建的:
<%= 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错误?其他人不得不处理这个?
的ProductsController:
def new
@location = Location.new
product_date = @location.product_dates.build
product_date.products.build
end
答案 0 :(得分:2)
您根本没有设置@product
变量=&gt;它是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
。
这里真的很有道理:你不能调用你没有设置的东西。