RubyonRailsでソーシャルネットワークを構築しています。user_idをユーザーステータスに追加しようとしていますが、エラーが発生します。コードは私のgithubで見つけることができます:https ://github.com/lewisfrost/treebook.git
手伝ってもらえますか?私はこれに一日中立ち往生しています!
ありがとう
RubyonRailsでソーシャルネットワークを構築しています。user_idをユーザーステータスに追加しようとしていますが、エラーが発生します。コードは私のgithubで見つけることができます:https ://github.com/lewisfrost/treebook.git
手伝ってもらえますか?私はこれに一日中立ち往生しています!
ありがとう
オブジェクトの少なくとも1つにがstatus
関連付けられていませんuser
。first_name
つまり、属性を表示できないということです。コンソールでこれを実行すると、この問題が発生しているステータスIDを見つけることができます。
puts Status.where(user_id: nil).map(&:id).inspect
ステータスに実際にユーザーがいることを確認する場合は、次のことを行う必要があります。
validates :user_id, :presence => true
:user_id
データベースで列をNOTNULLに設定します。
change_table(:status){|t| t.references :user, :null => false }
ユーザーが割り当てられているかどうかを気にしない場合は、ビューを変更して、:user_idが存在する場合にのみそのerbスニペットを実行するようにします。
ステータスに関連付けられたユーザーのfirst_nameとlast_nameを取得するために、非常に便利で意味のあるメソッドtry!を使用できます。
あなたはあなたの見解でこのようなことをすることができます:
<strong><%= status.user.try(:first_name) %> <%= status.user.try(:last_name) %></strong>
ユーザーのfirst_nameが存在する場合はそれを取得しようとし、ユーザーが存在しない場合はエラーを発生させません。