Ruby on rails 4 在我的博客应用程序中有一个严重问题,完成了所有身份验证,但是当我创建帖子时,用户id没有通过。请帮帮我
我刚刚完成了所有的身份验证过程,但是当我创建一个帖子时,用户名没有传递,所以在帖子中看不到用户名。后控制器中的代码 在PostController中,索引操作有以下代码Ruby on rails 4 在我的博客应用程序中有一个严重问题,完成了所有身份验证,但是当我创建帖子时,用户id没有通过。请帮帮我,ruby-on-rails-4,Ruby On Rails 4,我刚刚完成了所有的身份验证过程,但是当我创建一个帖子时,用户名没有传递,所以在帖子中看不到用户名。后控制器中的代码 在PostController中,索引操作有以下代码 <% @posts.each do |post| %> <%= link_to(:action => 'show', :id => post) do %> <b>Post by -- <%= post.user.first_name %&
<% @posts.each do |post| %>
<%= link_to(:action => 'show', :id => post) do %>
<b>Post by -- <%= post.user.first_name %> --</b>
<i>"<%= post.title %>"</i>
<% end %> <%= post.created_at.strftime("%B %d, %Y") %>
<p class = ""><%= post.body %></p> <hr/>
<% end %>
我的表格里有这个。表单不包含任何与用户相关的内容
<%= f.collection_select :categorie_id, Categorie.all, :id, :title, :prompt => 'Select One' %>
User.id未保存,因此用户名不可见。提前感谢。您需要关联这些记录。使用Desive进行身份验证时,如果用户已登录,则您拥有当前用户对象,因此您可以从以下位置更改创建方法:
def create
params.permit!
@catt = @cat_id
@post = Post.new(post_params)
到
为此,posts表需要有一个user\u id字段整数,模型需要在用户模型中有一个has\u many:posts,在post模型中属于用户
然后你可以在你的视图中调用用户名,比如post.user.first_name谢谢Nikolai,它可以工作,实际上我没有使用Desive,我是手动使用的,我只是在学习。但它与当前用户对象一起工作。这就是我使用session[:first_name]。谢谢尼古拉:
def create
params.permit!
@catt = @cat_id
@post = Post.new(post_params)
def create
params.permit!
@catt = @cat_id
@post = Post.new(post_params)
@post.user_id = current_user.id