2011-03-29 54 views
0

我希望能够将帖子与创建帖子的用户相关联。“发布”发布者为“用户”协会

到目前为止,我有:

belongs_to :user in my post.rb 

has_many :post in my user.rb 

我知道我的东西添加到我的职位控制器,但我不知道是什么。我希望我的每个帖子都有一个“发布者:(用户信息在这里)”...

任何帮助?提前致谢。

+0

答案并没有提到你对帖子控制器的问题。但是,除了引用通过您在模型中进行的关联关联的用户之外,在帖子控制器中没有什么特别的。只要你有一个有效的'Post'对象,你的关联就会触发一个查询,这个查询会根据你的需要提取'User'。 – rynmrtn 2011-03-29 23:35:48

+0

我不明白为什么我不断收到这个错误“未定义的方法'用户名'为零:NilClass”。我有两个belongs_to:我的“发布”模型中的用户和has_many:我的“用户”模型中的帖子... – ChrisBedoya 2011-07-26 00:47:16

回答

2

您可以通过做访问用户:

@post.user 

所以,你可能有:

Posted By: <%= @post.user.username %> 

其中@post就是后存在的变量。

你可以在你的情况here

要回答你的问题在铁轨here关联设定阅读起来,更具体,不,你并不需要此功能工作做任何事情来你的控制器。

+0

嗨。当我添加代码时,我得到未定义的方法'用户名'。是否必须向帖子控制器添加一些内容才能自动将帖子与创建该帖子的用户相关联? – ChrisBedoya 2011-03-30 00:09:37

+0

用户名只是用户的示例属性。我不确定你的用户模型是什么样的。使用标识该用户的任何属性(名称,名字等)。 – 2011-03-30 00:10:06

+0

这是我的User.rb类用户 ChrisBedoya 2011-03-30 00:20:03

0

您可以通过使用belongs_toPost对象定义的user方法引用此关联:

<%= post.user.name %> 

可以读取更多的associations guide

+0

继续收到此错误未定义的方法'用户名'为零:NilClass – ChrisBedoya 2011-07-26 00:42:51

+0

@ChrisBedoya:这意味着您正在访问的帖子没有与其关联的用户对象。您必须通过在该帖子对象上设置'user_id'字段来将帖子关联到用户。 – 2011-07-26 05:52:29

+0

感谢您的回应,但因为我只是学习钢轨,我不知道在哪里添加。错误不断指向我post_controller.rb我试图在“显示”部分添加这个@ post.user_id = current_user.username ,因为那里的错误显示,但我得到相同的用户名错误 – ChrisBedoya 2011-07-26 23:22:09