Невозможно отправить переменную в частичное использование Cocoon (Rails 3)

Я использую Rails 3 со стандартной формой рельсов и драгоценным камнем Cocoon. Я хочу отправить переменную в партиал через «link_to_add_association», используя «render_options», предоставленные драгоценным камнем, но я не могу заставить его работать. Представление из партиала отображается нормально, и coocon работает нормально (может добавлять и удалять элементы), за исключением переменной. Попытка напечатать переменную в представлении говорит, что она не определена. Это мой код:

_form.html.erb (это частичный вызов из new.html.erb)

<%= link_to_add_association raw('Nuevo con empleado existente'), f, parte_diario_item_indirectos, :render_options => {:locals => {:foo => 'bar'}}%>

_parte_diario_item_indirecto_fields.html.erb

<%= foo %>

Выполнение чего-то подобного приводит к «неопределенной ошибке foo».

Я также пробовал:

<%= locals[:foo] %>

с тем же результатом. Использование квадратных скобок вокруг «render_options» также не сработало.


person gonzag88    schedule 07.01.2015    source источник
comment
Я не вижу очевидной ошибки (за исключением имени ассоциации, я предполагаю, что вы просто забыли : впереди), это должно просто работать. Какую версию драгоценного камня используете?   -  person nathanvda    schedule 13.01.2015
comment
Спасибо за ответ. Кокон 1.2.6   -  person gonzag88    schedule 13.01.2015


Ответы (1)


У меня была очень похожая проблема, пока я не понял, что render также вызывается в блоке fields_for прямо над моим вызовом link_to_add_association

Вот пример, который предоставляет Cocoon, с моими местными жителями, добавленными к link_to_add_association:

= simple_form_for @project do |f|
  = f.input :name
  = f.input :description
  %h3 Tasks
  #tasks
    = f.simple_fields_for :tasks do |task|
      = render 'task_fields', :f => task
    .links
      = link_to_add_association 'add task', f, :tasks, :render_options => { :locals => { :foo => 'bar'} }
  = f.submit

Я не передавал локальные переменные первому вызову render, поэтому фактическая неопределенная ошибка была связана с неправильным render, а не с link_to_add_association

person kayatela    schedule 16.06.2015