2011-02-13 29 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} %>