Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 在我的博客应用程序中有一个严重问题,完成了所有身份验证,但是当我创建帖子时,用户id没有通过。请帮帮我_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 4 在我的博客应用程序中有一个严重问题,完成了所有身份验证,但是当我创建帖子时,用户id没有通过。请帮帮我

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 %&

我刚刚完成了所有的身份验证过程,但是当我创建一个帖子时,用户名没有传递,所以在帖子中看不到用户名。后控制器中的代码

在PostController中,索引操作有以下代码

    <% @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