这是我的代码:
<a href="<%= foo_path(foo) %>" class="<%= foo.roles.empty? ? foo.roles.gsub(',', ' ') : "" %>">
undefined method `empty?' for nil:NilClass
如果roles
内有内容,我只想输出一个字符串的gsub,如果没有,那么只需吐出一个空字符串。
有什么建议吗?
答案 0 :(得分:3)
nil.to_s
=&gt; ''
,您的替换对空字符串没有影响,因此您可以像这样完全跳过empty?
测试:
<a href="<%= foo_path(foo) %>" class="<%= foo.roles.to_s.gsub(',', ' ') %>">
答案 1 :(得分:0)
使用blank?
method
<a href="<%= foo_path(foo) %>" class="<%= foo.roles.blank? ? "" : foo.roles.gsub(',', ' ') %>">