我正在构建一个基本的初学者应用程序,以练习在Rails中进行构建。我已经搭建了两个模型,一个是User,另一个是Post,一个用户has_many:posts,一个post属居到一个:user。
我想要做的是,使显示用户页面具有指向新帖子的链接,从而使该帖子与该用户相关联,并且所提交的帖子有一个小块以显示发布该帖子的用户。我在Post表中有user_id字段。
开箱即用的功能未显示关联的用户,但我希望它显示。我该怎么做?
答案 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