我一直在使用示波器来展示一些信息,以显示已经完成并且已经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 :(得分:7)
好吧,如果你想为每个项目渲染部分,你可以这样做:
<%=render :partial=> 'logged', :collection=>@user.todos.logged %>
或者,如果您想将整个数组传递给一个实例,那么您可以执行
<%=render :partial=> 'logged', :object=>@user.todos.logged %>
在这两种情况下,我猜您的对象将被称为logged
。
假设您想要为每个项目呈现部分<%= logged.title %>
,那么您可以使用第一个版本。
答案 1 :(得分:0)
首先,为了让我的良心保持清洁,请允许我说,将模型代码传递给您的观点绝不是一个好主意。但如果你坚持:
<%= render :partial => 'some_partial',
:locals => {:some_variable => "somevalue",
:some_other_variable => some_other_variable} %>