我正在用 Ruby on rails 构建一个社交网络。我正在尝试将 user_id 添加到用户状态,但它会产生错误。代码可以在我的 github 上找到:https ://github.com/lewisfrost/treebook.git
你能帮忙吗?我整天都被困在这上面!!
谢谢
我正在用 Ruby on rails 构建一个社交网络。我正在尝试将 user_id 添加到用户状态,但它会产生错误。代码可以在我的 github 上找到:https ://github.com/lewisfrost/treebook.git
你能帮忙吗?我整天都被困在这上面!!
谢谢
至少有一个status
对象没有关联的user
. 这反过来意味着您无法显示该first_name
属性。您可以通过在控制台中运行它来查找哪些状态 ID 存在此问题:
puts Status.where(user_id: nil).map(&:id).inspect
如果你想确保一个状态确实有一个用户,你应该:
validates :user_id, :presence => true
在数据库中将您的:user_id
列设置为 NOT NULL:
change_table(:status){|t| t.references :user, :null => false }
如果您不关心是否分配了用户,请修改您的视图以仅在存在 :user_id 时运行该 erb 片段。
为了尝试获取与您的状态相关联的用户的名字和姓氏,您可以使用非常方便的 & 含义方法 try!
你可以在你的视图中做这样的事情:
<strong><%= status.user.try(:first_name) %> <%= status.user.try(:last_name) %></strong>
如果用户存在,它将尝试获取用户的名字,如果用户不存在,则不会引发错误!