如何将人员对象传递到相关的Post模型对象中

时间:2019-06-28 01:46:47

标签: ruby-on-rails ruby

我正在构建一个基本的初学者应用程序,以练习在Rails中进行构建。我已经搭建了两个模型,一个是User,另一个是Post,一个用户has_many:posts,一个post属居到一个:user。

我想要做的是,使显示用户页面具有指向新帖子的链接,从而使该帖子与该用户相关联,并且所提交的帖子有一个小块以显示发布该帖子的用户。我在Post表中有user_id字段。

开箱即用的功能未显示关联的用户,但我希望它显示。我该怎么做?

1 个答案:

答案 0 :(得分:2)

您可以根据需要以多种方式实现这一目标。

如果要实现是否已经登录用户,可以执行以下操作:

在您的PostController中,将此行添加到create方法

@post = current_user.posts.build(params[:post])

这将自动为您分配信息的user_id。

<%= link_to "new_post", new_post_path %>添加到用户显示页面。

否则,

如果用户未登录

通过添加

new_post_path链接中将user_id作为参数传递

<%= link_to "new_post", new_post_path(:user_id => user_id) %>在用户显示页面上

,然后在新的帖子页中,将值添加为user_id字段,如下所示: <%= f.text_field :user_id, :value=>params[:user_id] $>可以显示为必填字段,也可以将其设置为hidden_​​field或text_field