0

RubyonRailsでソーシャルネットワークを構築しています。user_idをユーザーステータスに追加しようとしていますが、エラーが発生します。コードは私のgithubで見つけることができます:https ://github.com/lewisfrost/treebook.git

手伝ってもらえますか?私はこれに一日中立ち往生しています!

ありがとう

4

2 に答える 2

1

オブジェクトの少なくとも1つにがstatus関連付けられていませんuserfirst_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スニペットを実行するようにします。

于 2012-11-20T19:54:03.437 に答える
0

ステータスに関連付けられたユーザーのfirst_nameとlast_nameを取得するために、非常に便利で意味のあるメソッドtry!を使用できます。

あなたはあなたの見解でこのようなことをすることができます:

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

ユーザーのfirst_nameが存在する場合はそれを取得しようとし、ユーザーが存在しない場合はエラーを発生させません。

于 2012-11-20T19:59:57.043 に答える