4

私は Rails 3 を使用しており、標準の Rails フォームと Cocoon gem を使用しています。gem が提供する「render_options」を使用して「link_to_add_association」を介してパーシャルに変数を送信したいのですが、うまくいきません。パーシャルからのビューは正常にレンダリングされており、変数を除いて 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' の周りにブラケット/ブレースを使用しても機能しませんでした。

4

1 に答える 1

3

への呼び出しのすぐ上のブロックrenderでも呼び出されていることに気付くまで、私は非常によく似た問題を抱えていましたfields_forlink_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

于 2015-06-16T21:03:40.740 に答える