jn2*_*098 4 ruby ruby-on-rails ruby-on-rails-3
我正在为我的Rails视图中的Nil检查寻找一个好的快捷方式.我已经看到了关于此的其他问题,但似乎没有人像我想的那样简化这一点.我想要的是一个简短的语法,""如果特定值为nil则返回空字符串,否则返回该值.
有一个建议,在这里,我是倾向于尝试.它基本上允许这样的语句:
user.photo._?.url
Run Code Online (Sandbox Code Playgroud)
- 要么 -
user.photo.url._?
Run Code Online (Sandbox Code Playgroud)
这是一个好主意还是充满危险?
我的另一个选择是在我的模型上处理nils,但这看起来太全局了.
您应该检查try在对象上运行提供的方法的方法,如果有问题的对象不是nil则返回值.否则它只会返回零.
例
# We have a user model with name field
u = User.first
# case 1 : u is not nil
u.try(:name)
=> Foo Bar
# case 2 : u is nil
u.try(:name)
=> nil
# in your case
user.photo.try(:url)
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请查看此博客文章.