Rails 2.3.5メソッドローカル変数から部分的なものを渡すことはありませんか?
部分的にローカル変数が必要なAJAX呼び出しのメソッドから部分的なレンダリングを試みたのはこれが初めてです。クエリは正常に動作していますが、何が間違っているのかわからず、これまでの検索で何も見つかりませんでした。部分はレンダリングされており、ビューにはローカルと同じ方法が渡されます。
@group = Group.find(params[:group_id])
respond_to do |format|
format.html {render :partial => 'group_show_user_list', :locals=>{:users=>@group.users}}
format.js
end
エラー:
ActionView::TemplateError (undefined local variable or method `users' for #<ActionView::Base:0x8a33030>) on line #16 of app/views/groups/_group_show_user_list.html.erb:
13: <tbody>
14:
15:
16: <% users.each do |user| %>
17:
18: <tr id="dir_user_<%= user.id %>">
19: <td>
それは部分的には、メソッド内からレンダリングされたときに、部分的にローカル変数を渡すことは可能ですか?または、部分変数をインスタンス変数に変更する必要がありますか?
ありがとうございます。
はEDITは:
これは本当に答えではないが、コントローラに私が追加:
@users = @group.users
と部分で私がコメントを追加しました:
<% users = users || @users %>
私は本当にできませんでしたパーシャルが最初にグループインデックスページから呼び出され、 'ショー'ページが最初に生成されたときに選択された1つのグループに基づいて一意のグループのユーザーを必要とするため、パーシャルオーバー全体を変更します。
ローカルの部分をメソッドに渡すのがうまくいかない理由がわかっています。ローカルの部分をビューの一部に渡すときとは別の方法地元の人々を渡すだけでは方法では動作しません - ありがとう!
パーツの代わりにフルページをレンダリングすると、それは機能しますか? –
そうです。私はページ上に7つのパーシャルがあり、ajaxに変換しています( 'show'ページは大きいですユーザー管理ページ)。次のものには、グループインデックスページからローカル変数を取得する部分があります。私は他のものを試してみると、朝に何が起こるかを見ていきます。私はまだそれを動作させることができない場合、少なくとも回避策は簡単でした。私はおそらく、それが午前中に動作するかどうかを確認するために、ローカルのシンプルなハードコーディングされた文字列 "YES"を送信してみるべきです。 – Reno
Ajax呼び出しをデバッグするだけです。それ以外はすべてが正しいように見えるから – Ashish