2011-02-13 24 views
3

我已使用范围呈现一些信息以表明已经完成,在24小时老使用范围具有部分的图

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

使用常规待办事项局部待办事项

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

不过,我想在不同的部分_logged.html.erb中显示这些记录的项目。我只是无法弄清楚将范围结果传递给特定部分的正确方法。

感谢

+0

你想将某些变量传递给partial吗? – 2011-02-13 22:59:31

回答

7

好吧,如果你想渲染部分的每个项目,哟可以这样做:

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

或者,如果你想整个阵列的一个实例传递,那么你可以做

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

在这两种情况下,我想你的对象将被称为logged

假设您的部分包含<%= logged.title %>您想渲染每个项目,因此您可以使用第一个版本。

0

首先,让我的良心干净,让我说,那合格型号代码你的意见是不是一个好主意。但是,如果你坚持:

<%= render :partial => 'some_partial', 
:locals => {:some_variable => "somevalue", 
:some_other_variable => some_other_variable} %>