我是一个Ruby on Rails的新手,在关联对象的情况下,有一个关于观点的逻辑问题:显示关联对象
我的模型类似于
class Post < ActiveRecord::Base
has_many :comments
end
class Comment < ActiveRecord::Base
belongs_to :post
end
而我想显示为类似于所有帖子的列表以及每个帖子的前三个评论。
所以,我不停的后位指示索引操作简单
class PostController < ApplicationController
#..
def index
@posts = Post.find(:all)
end
#..
end
现在在views/posts/index.html.erb
我可以做这样的事情@posts.comments
我可以循环的前三项。但是,如何访问模型(在这种情况下是相关模型)中正常完成的功能,如视图(或控制器)中的排序,范围等?
我会对你的例子做一些小的修改: 1)你不需要指定范围的proc。只是做named_scope:最近:限制=> 3,:订单... 2)在视图中,我会使用部分: <%= render:partial“comment”,:collection => @ post.comments.recent% > Rails将发送由named_scope返回的数组,并为您呈现局部循环。 – scottd 2009-06-22 19:18:27
谢谢ScottD!我更新了这个例子。 – 2009-06-22 19:36:13