0

工作,我有這是建立這樣的形式:jQuery的Tokeninput和行爲-AS-加標籤不與親子子女嵌套形式

<%= 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 

回答

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正常工作。

這裏真的很有意義:你不能調用你沒有設置的東西。

+0

好吧,我用控制器更新了我的問題。以前,當我只有位置和產品(無產品日期模型)的關聯時,才能使嵌套表單起作用。 – LearningRoR

+0

有趣的是,當我按照你所說的去做時,它開始工作;我將@product = Product.new放在新操作的內部。謝謝。 – LearningRoR