2015-01-07 4 views
3

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

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

Делать что-то вроде что приводит к ошибке «undefined» foo ».

Я также попытался:

<%= locals[:foo] %> 

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

+0

Я не вижу очевидной ошибки (кроме имени ассоциации, я предполагаю, что вы просто забыли ':' впереди), это должно сработать. Какая версия драгоценного камня используется? – nathanvda

+0

Спасибо за ответ. Cocoon 1.2.6 – gonzag88

ответ

2

У меня была очень похожая проблема, пока я не понял, что 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

Смежные вопросы