Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.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 RubyonRails社交网络-用户id产生错误_Ruby On Rails_Ruby_Rubygems_Ruby On Rails 3.2_Rvm - Fatal编程技术网

Ruby on rails RubyonRails社交网络-用户id产生错误

Ruby on rails RubyonRails社交网络-用户id产生错误,ruby-on-rails,ruby,rubygems,ruby-on-rails-3.2,rvm,Ruby On Rails,Ruby,Rubygems,Ruby On Rails 3.2,Rvm,我正在用RubyonRails构建一个社交网络。我试图将用户id添加到用户状态,但它产生了一个错误。代码可以在my github上找到: 你能帮忙吗?我一整天都被这件事缠住了 谢谢您的状态对象中至少有一个没有关联的用户。这反过来意味着您不能显示first_name属性。通过在控制台中运行以下命令,可以找到哪些状态ID存在此问题: puts Status.where(user_id: nil).map(&:id).inspect 如果要确保某个状态实际上有一个用户,您应该: 使用:val

我正在用RubyonRails构建一个社交网络。我试图将用户id添加到用户状态,但它产生了一个错误。代码可以在my github上找到:

你能帮忙吗?我一整天都被这件事缠住了

谢谢

您的状态对象中至少有一个没有关联的用户。这反过来意味着您不能显示first_name属性。通过在控制台中运行以下命令,可以找到哪些状态ID存在此问题:

puts Status.where(user_id: nil).map(&:id).inspect
如果要确保某个状态实际上有一个用户,您应该:

使用:validates:user_id,:presence=>true验证用户是否关联 在数据库中将:user\u id列设置为不为NULL:

change_表:状态{| t | t.references:user,:null=>false}


如果您不关心是否分配了用户,那么请修改视图以仅在:user\u id存在时运行该erb代码段。

为了尝试获取与您的状态关联的用户的名字和姓氏,您可以使用非常方便的&means

在您看来,您可以这样做:

<strong><%= status.user.try(:first_name) %> <%= status.user.try(:last_name) %></strong>

如果该用户存在,它将尝试获取该用户的第一个\u名称,如果该用户不存在,则不会引发错误

NoMethodError在StatuseIndex中显示/Users/lewisfrost/treebook/app/views/statuses/index.html.erb,其中第9行出现:nil:NilClass的未定义方法“first_name”是否在状态表上创建了fk user_id?@PinnyM在我的github上查看它是否更清晰@Yoshiji先生什么是“fk”?很抱歉,您的状态对象没有与之关联的用户对象。这意味着status对象上的fk外键用户id为null。这就是我得到的:1.9.3p194:001>放置status.whereuser\u id:nil.map&:id.inspect status Load 0.2ms选择status.*从status.user\u id为null的status中[4]=>nil 1.9.3p194:002>因此id为“4”的status对象就是罪魁祸首。。。如果用户关联被认为是强制性的,那么要么分配一个用户,要么删除它。刚刚得到这个错误:状态中的NameError show show show show/Users/lewisfrost/treebook/app/views/statuses/show.html.erb,其中第5行出现:未定义的局部变量或第5行附近提取的源的“status”方法:2:3:4:Name:5: