将范围与视图部分结合使用

发布于 2024-10-17 18:00:01 字数 381 浏览 4 评论 0原文

我一直在使用范围来提供一些信息来显示已完成且 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 中显示这些记录的项目。我只是无法找出将范围结果传递给特定部分的正确方法。

谢谢

I have been using a scope to present some information to show todos that have been completed and are 24 hours old

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

Using the regular todo partial

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

However I want to present those logged items in a different partial _logged.html.erb. I just can't figure out the proper way to pass scope results to a specific partial.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

写下不归期 2024-10-24 18:00:01

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

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

或者如果你想将整个数组传递给一个实例,那么你可以这样做

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

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

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

Well, if you want to render partial for each item, yo can do:

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

Or if you want to pass the whole array to one instance then you can do

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

In both cases I guess your object will be called logged.

Assuming that your partial contains <%= logged.title %> you want to render for each item, so you can use the first version.

醉生梦死 2024-10-24 18:00:01

首先,为了保持我的良心,我要说的是,将模型代码传递给你的视图从来都不是一个好主意。但如果你坚持:

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

First, to keep my conscience clean, let me say that that passing model code to your views is never a good idea. But if you insist :

<%= render :partial => 'some_partial',
:locals => {:some_variable => "somevalue",
:some_other_variable => some_other_variable} %>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文