嗯,开始学习 Rails,当然是从编写带有个人博客的服务开始(比如 livejournal)。我有帖子脚手架和用户模型(感谢 Devise)。现在我正在尝试显示某些用户在 url 中使用类似/username/posts 的所有帖子,但我真的不明白如何制作这种 rails-way。 已经在路由中做了嵌套资源
resources :users do
resources :posts
end
并连接用户和发布模型
has_many :posts
和
belongs_to :user
我应该为用户创建 Controller 吗?有什么正确的方法吗?
附言感谢你的回答。尝试研究 Rails,但我找到的几乎所有教程都以脚手架结束,这不是很有帮助。
编辑 1:多亏了“匹配”的想法,我解决了一半的问题。另一半( Unresolved )是选择特定用户写的帖子
编辑 2:添加
@user = User.where(:username => params[:username])
@posts = @user.posts
到 Controller ,但我在帖子 Controller 中有“未定义的方法‘帖子’”错误。
最佳答案
当您使用 where
时,您会从查询中获取对象数组,而不是单个对象。
因此,您的 @user
变量上没有 posts
方法。
也许你应该改成这样,只检索一个 user
:
@user = User.find_by_username(params[:username])
这样你只有一个用户
被查询并且你可以使用.posts
relashionship没有错误。
关于ruby-on-rails - 在 rails 中显示特定用户的博客文章,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11888587/