【发布时间】:2011-10-09 20:08:15
【问题描述】:
我创建了一个小型 twitter 克隆应用程序,用户可以在其中发布帖子、关注其他用户,并获得他们关注的用户的所有帖子的提要。我为帖子添加了一个类别选择,“惊悚片”“西部片”“恐怖片”等等。
当用户登录时,根网址是他们的仪表板。
routes.rb
root :to => "pages#home"
pages#home 是用户提要所在的位置:@feed_items = current_user.feed
PagesController
def home
@title = "Home"
@featured_posts = Post.featured.limit(10)
if user_signed_in?
@user = current_user
@post = current_user.posts.build
@feed_items = current_user.feed.paginate(:per_page => "10", :page => params[:page])
end
end
现在我已经弄清楚如何解析提要并提取一个子提要,其中仅包含 category_id 为“2”(也称为“惊悚片”)的帖子
@thriller_feed_items= current_user.feed.where(:category_id => '2')
当登录用户访问 root_path 时,他们会看到他们的仪表板和整个提要。我希望有一个链接,上面写着“惊悚片”,它将把当前的整个@feed_items 更改为@thriller_feed_items,但我对路线和视图的工作方式感到困惑。 Twitter 使用 /!#/mentions 作为子集提要的地址,我需要做同样的事情吗?我该如何设置?
编辑:展示我的提要方法的工作原理。
用户模型
def feed
Post.from_users_followed_by(self)
end
后模型
def self.followed_by(user)
followed_ids = %(SELECT followed_id FROM relationships
WHERE follower_id = :user_id)
where("user_id IN (#{followed_ids}) OR user_id = :user_id", :user_id => user)
end
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 model-view-controller routes