我的表单是这样构建的:
<%= 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 bug吗?还有谁要处理这件事?
ProductsController:
def new
@location = Location.new
product_date = @location.product_dates.build
product_date.products.build
end发布于 2011-07-17 15:38:15
您只是没有将@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。
这真的很有道理:你不能调用你没有设置的东西。
https://stackoverflow.com/questions/6722518
复制相似问题