これが私がやりたいことの擬似コードです:
if @current_user is defined then puts @current_user.name
変数が定義されているかどうかを本当に知る必要がありますか?それとも、変数に有効なUser
オブジェクトが含まれているかどうかを知るだけで十分ですか?
インスタンス変数はNameError
、定義されていない場合でも、 を発生させることはありません。それらは に評価されるだけnil
なので、それを確認するだけです:
puts @current_user.name unless @current_user.nil?
あなたの質問にはruby-on-rails のActiveSupport
タグが付けられているので、とにかくロードしたと仮定して、Object#try
拡張メソッドを使用することもできます。
puts @current_user.try(:name)