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
и в Partial я добавил:
<% users = users || @users %>
Я действительно не мог измените весь частичный, потому что частичный изначально вызывается с индексной страницы группы и нуждается в уникальной группе пользователей на основе одной группы, выбранной при первой сгенерированной странице «показать».
Мне все еще хотелось бы знать, почему передача локального частичного в методе не работает - как если бы мне нужно было сделать это иначе, чем когда вы передавали местные жители частичным в представлении или если прохождение местных жителей просто не работает из-за метода - Спасибо!
Все выглядит правильно. Если вы отрисовываете полную страницу, а не частичную, она работает? –
Да, это будет. У меня есть 7 других частичных страниц на странице, чтобы конвертировать их в ajax (страница «показать» - большая страница управления пользователями).В следующем также есть частичное, которое получает локальную переменную из индексной страницы группы. Я посмотрю, что произойдет утром, когда я попробую другого. По крайней мере, обходной путь был легким, если я все еще не могу заставить его работать. Вероятно, я попытаюсь отправить простую строковую строку «ДА» в качестве локального, чтобы увидеть, работает ли это утром. – Reno
Просто отлаживайте свои призывы Ajax. Потому что кроме того, что все выглядит правильно – Ashish