これが私のコードです:
<a href="<%= foo_path(foo) %>" class="<%= foo.roles.empty? ? foo.roles.gsub(',', ' ') : "" %>">
undefined method `empty?' for nil:NilClass
内部に何かがある場合は文字列のgsubを出力したいだけですがroles
、そうでない場合は、空の文字列を吐き出します。
助言がありますか?
これが私のコードです:
<a href="<%= foo_path(foo) %>" class="<%= foo.roles.empty? ? foo.roles.gsub(',', ' ') : "" %>">
undefined method `empty?' for nil:NilClass
内部に何かがある場合は文字列のgsubを出力したいだけですがroles
、そうでない場合は、空の文字列を吐き出します。
助言がありますか?
nil.to_s
=> ''
、そしてあなたの置換は空の文字列に影響を与えないので、次のempty?
ようにテストを完全にスキップすることができます:
<a href="<%= foo_path(foo) %>" class="<%= foo.roles.to_s.gsub(',', ' ') %>">
メソッドを使用するblank?
<a href="<%= foo_path(foo) %>" class="<%= foo.roles.blank? ? "" : foo.roles.gsub(',', ' ') %>">