好吧,开始学习 Rails,当然是从编写带有个人博客的服务(例如 livejournal)开始。我有帖子脚手架和用户模型(感谢 Devise)。现在我试图在 url 中显示某些用户的所有帖子,例如 /username/posts ,但真的无法理解如何制作这个 Rails-way。
已经在路线中制作了嵌套资源
resources :users do
resources :posts
end
并连接用户和帖子模型
has_many :posts
and
belongs_to :user
我应该为用户创建控制器吗?有没有什么正确的方法呢?
附:感谢你的回答。尝试学习 Rails,但我发现的几乎所有教程都以脚手架结束,这并不是很有帮助。
编辑1:多亏了“匹配”的想法,我解决了一半的问题。另一半(未解决)是选择特定用户撰写的帖子
编辑2:添加
@user = User.where(:username => params[:username])
@posts = @user.posts
到控制器,但我在帖子控制器中有“未定义的方法‘帖子’”错误。
当你使用where
您从查询中获得一组对象,而不是单个对象。
正因为如此,你没有posts
方法对你的@user
多变的。
也许你应该改变成这样,只检索一个user
:
@user = User.find_by_username(params[:username])
这样你就只有一个user
查询后,您可以使用.posts
关系没有错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)