Jquery Tokeninput & Acts-as-taggable не работает с вложенной формой родительский-дочерний-дочерний - PullRequest
0 голосов
/ 17 июля 2011

У меня есть форма, которая построена так:

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

1 Ответ

2 голосов
/ 17 июля 2011

Вы просто не установили свою @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.

Это действительно хороший смысл: вы не можете вызвать то, что не сделалиустановлен.

...