我一直在使用范围来显示一些信息来显示已完成且 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/

10-11 15:25