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>
是否有可能當部分從方法內呈現給本地變量傳遞到部分?或者我應該將部分改爲實例變量?
非常感謝!
編輯:
這是不是一個真正的答案,但在控制器我說:
@users = @group.users
,並在部分我說:
<% users = users || @users %>
我真的不能因爲部分最初是從組索引頁面調用的,並且需要基於首次生成'show'頁面時選擇的一個組的唯一一組用戶,所以更改整個部分。
我仍然很想知道爲什麼在方法中傳遞局部方法不起作用 - 就像我需要以與將視圖中的局部方法傳遞給局部方法時不同的方式,或者如果傳遞當地人只是不從一種方法工作 - 謝謝!
一切都看起來正確如果你渲染整個頁面而不是部分它的作品 – 2011-03-07 04:41:10
是的,我會在頁面上有7個其他部分轉換爲ajax('show'頁面是一個大用戶管理頁面)。下一個也有一個從組索引頁面獲取局部變量的部分。我會看到早晨當我嘗試另一個時會發生什麼。如果我仍然無法實現它,至少該解決方法很容易。我應該嘗試發送一個簡單的硬編碼字符串「YES」作爲本地來查看它是否在早晨有效。 – Reno 2011-03-07 04:52:56
只需調試您的Ajax調用。因爲除了一切看起來不錯 – Ashish 2011-03-07 04:57:31