【发布时间】:2015-01-10 13:16:01
【问题描述】:
在我的应用程序中,我有属于组并且可以创建帖子的用户。
在每个组页面上,我试图显示该特定组中用户的所有帖子(从最新到最旧)。这是我迄今为止尝试过的代码,但它显示了每个用户的所有帖子,无论用户属于哪个组。
这是groups_controller.rb:
class GroupsController < ApplicationController
def show
@group = Group.find(params[:id])
if logged_in?
@feed_items = Post.latest_posts_by_group(@group)
end
end
end
在post.rb:
class Post < ActiveRecord::Base
belongs_to :user
def self.latest_posts_by_group(group_id)
Post.find_by_sql(['select posts.*
from groups
inner join users
on users.group_id = groups.id
inner join posts
on posts.user_id = user_id
where groups.id = ?
order by created_at desc', group_id])
end
end
user.rb(嗯,至少是关联):
class User < ActiveRecord::Base
belongs_to :group
has_many :posts
end
group.rb(同样,只是显示关联):
class Group < ActiveRecord::Base
has_many :users
end
【问题讨论】:
-
可以分享一下模型之间的关系吗?
标签: ruby-on-rails ruby ruby-on-rails-4