ビューでは、通常、次のような値の存在を確認します。
<%= @user.name if @user.name.present? %>
私の意図を理解し、確認したいことを繰り返す必要のない、より短いものは存在しますか? 次のようなものを探しています。
<%= @user.name if existent? %>
これが存在しない場合、このための helper_method を構築することは可能でしょうか (もしそうなら、どのように)?
ビューでは、通常、次のような値の存在を確認します。
<%= @user.name if @user.name.present? %>
私の意図を理解し、確認したいことを繰り返す必要のない、より短いものは存在しますか? 次のようなものを探しています。
<%= @user.name if existent? %>
これが存在しない場合、このための helper_method を構築することは可能でしょうか (もしそうなら、どのように)?
@user.try(:name) を試してください。@user が nil の場合、これは nil を返します。
これを複数の場所で行っている場合は、おそらく @zrl3dx の提案を取り入れてヘルパーに抽出します。
で ruby ファイルを作成するだけですapp/helpers
。user_helper.rb
module UserHelper
def current_user
@user.try(:name)
end
end
次に、ビューで次を使用できます。
<%= current_user %>
これは、デフォルト値を与える良い方法でもあります。ユーザーが存在しないときに「ログインしていません」と言いたいとします。
module UserHelper
def current_user
@user.try(:name) || "Not logged in"
end
end
もちろん、その時点でリンクを提供する方がおそらく役立つでしょう。