Использование области видимости с частичным представлением - PullRequest
3 голосов
/ 14 февраля 2011

Я использую область, чтобы представить некоторую информацию для отображения задач, которые были завершены и имеют возраст 24 часа

scope :completed, joins(:user).where(:todos => { :complete => true })
scope :logged, completed.where("todos.updated_at <= ?", 1.day.ago)

Использование обычного частичного задания todo

<%= render @user.todos.logged =>

Однакохочу представить эти зарегистрированные элементы в другом частичном _logged.html.erb.Я просто не могу понять, как правильно передать результаты области видимости в конкретный фрагмент.

Спасибо

Ответы [ 2 ]

7 голосов
/ 14 февраля 2011

Ну, если вы хотите сделать частичное для каждого элемента, вы можете сделать:

<%=render :partial=> 'logged', :collection=>@user.todos.logged %>

Или, если вы хотите передать весь массив в один экземпляр, вы можете сделать

<%=render :partial=> 'logged', :object=>@user.todos.logged %>

В обоих случаях, я думаю, ваш объект будет называться logged.

Предполагая, что ваше частичное содержит <%= logged.title %>, которое вы хотите визуализировать для каждого элемента, поэтому вы можете использовать первую версию.

0 голосов
/ 14 февраля 2011

Во-первых, чтобы сохранить свою совесть в чистоте, позвольте мне сказать, что передача кода модели в ваши представления никогда не была хорошей идеей.Но если вы настаиваете:

<%= render :partial => 'some_partial',
:locals => {:some_variable => "somevalue",
:some_other_variable => some_other_variable} %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...