我仍在熟悉 Rails,并且对我尝试使用 Rails 3.2 解决的问题有疑问。这是我认为我的问题所在的几个文件的链接:
https://gist.github.com/0fe5cf9093b21f4f632f
如果代码真的很糟糕/添加了一些不需要存在的东西,我深表歉意,因为我仍在努力适应一切的工作方式。
我想对我网站上的每篇文章发表评论——我的逻辑是用户有很多评论,我想这些帖子有很多来自用户的评论。我确实添加了这种关系(尽管它似乎没有做任何特别的事情),而且我觉得我所有的表引用都是正确的(尽管我没有向用户添加任何东西,因为我正在使用设计和感觉我不需要添加任何东西,因为帖子本身就是一个单独的对象)。
截至目前,我可以显示所有评论,因为我可以创建和保存它们。我至少还保存了user_id
变量,因此它可以了解哪个帐户正在发表评论。我不确定我应该在哪里/何时通过post_id
,所以这是最大的问题。我尝试过的任何方式posts_controller
(因为理论上我应该能够在加载帖子页面时编辑该属性),我得到一个
undefined method 'post_id'
或者
no post_id column
错误,表明它不存在,即使据我了解,我已经定义了它。user_id
如前所述,能够保存的事实使我更加困惑。
如果我显示在我的显示视图中创建的评论的属性,我会得到以下信息:
{
"id"=>1,
"content"=>"text here",
"posted"=>Sat, 03 Nov 2012 20:36:53 UTC +00:00,
"user_id"=>1,
"created_at"=>Sat, 03 Nov 2012 20:36:53 UTC +00:00,
"updated_at"=>Sat, 03 Nov >2012 20:36:53 UTC +00:00
}
没有post_id
,尽管我确实将它添加到迁移表中以供评论。尝试@post.id
在帖子控制器中传递 (到 show 方法的评论实例,因为它可以在帖子下方使用)会导致质量分配错误。弄乱:class
and:foreign_key
选项也没有多大作用。根据我所做的研究,其中包括 Rails 自己的一些文档,我认为我不需要has_many
直通关系,但我不知道我在哪里缺少相应保存信息所需的内容。
也许这部分是由于我对数据库/模型关系设计缺乏了解,尽管感谢任何帮助。我见过几个类似的问题,但我仍然发现很难将他们的解决方案应用到我自己的特定问题的上下文中。