1

ユーザーが多くのイベントを持つRailsアプリケーションを構築しています。

ユーザーにイベントがあり、私がイベントを持っている場合はcurrent_user.events.eachすべて問題ありませんが、ユーザーにイベントがない場合は、未定義のメソッド エラーがスローされ、アプリケーション全体が動作を停止します。

PHP ユーザーとして、ループを実行する前に、まず変数が設定されているかどうかを確認します。Rails にはモデル内でメソッドを開始する気の利いた方法がありますか、それとも確認する必要がありますか?

4

3 に答える 3

2
current_user.events.try(:each)

これは単純にeachif eventsis not nil の通常の出力を返し、それ以外の場合はnilエラーを出さずに返します。

于 2013-08-27T09:31:25.173 に答える
0

あなたができる

if current_user.events  # This ensures that that the user at least has 1 event
  current_user.events.each 
  # rest of the code
end
于 2013-08-27T09:30:59.350 に答える