仅当字符串具有值时才格式化字符串

时间:2013-03-23 23:14:21

标签: ruby ruby-on-rails-3 string

这是我的代码:

<a href="<%= foo_path(foo) %>" class="<%= foo.roles.empty? ? foo.roles.gsub(',', ' ') : ""  %>">

undefined method `empty?' for nil:NilClass

如果roles内有内容,我只想输出一个字符串的gsub,如果没有,那么只需吐出一个空字符串。

有什么建议吗?

2 个答案:

答案 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(',', ' ')  %>">