在视图中,我通常会检查是否存在这样的值:
<%= @user.name if @user.name.present? %>
是否存在更短的内容,了解我的意图而不需要重复我要检查的内容?我正在寻找以下内容:
<%= @user.name if existent? %>
如果这不存在,是否可以为此构建一个helper_method(如果是,如何)?
答案 0 :(得分:1)
尝试@ user.try(:name),如果@user为nil,则此wilk返回nil。
答案 1 :(得分:0)
如果您在多个地方这样做,我可能会采取@ zrl3dx的建议并将其提取到帮助器中。
只需在app/helpers
中创建一个ruby文件,例如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
当然,在那时给他们一个链接可能会更有帮助。