我一直在使用范围来显示一些信息来显示已完成且 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 中显示这些记录的项目。我只是想不出将范围结果传递给特定部分的正确方法。
谢谢
最佳答案
好吧,如果你想为每个项目渲染部分,你可以这样做:
<%=render :partial=> 'logged', :collection=>@user.todos.logged %>
或者,如果您想将整个数组传递给一个实例,那么您可以这样做
<%=render :partial=> 'logged', :object=>@user.todos.logged %>
在这两种情况下,我猜您的对象将被称为
logged
。假设您的部分包含要为每个项目呈现的
<%= logged.title %>
,因此您可以使用第一个版本。关于ruby-on-rails - 将范围与 View 部分一起使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4987067/