Add inline if ... class (in 1 line)

I want to add a class to link_to only if the statement is true.

<%= link_to product.name, product, :class => "last" if product == @products.last %> 

The problem is that the IF statement affects the entire line, not just : class .

I know that I can do this with EL ELSE, but is it possible to do this in 1 line?

+8
ruby class ruby-on-rails if-statement link-to
source share
2 answers
 <%= link_to product.name, product, :class => (product == @products.last ? "last" : "") %> 
+19
source share

Well, you could distract this in an assistant:

 def product_link(product) if product == @products.last link_to product.name, product, :class => "last" else link_to product.name, product end end 

Then, in your opinion, you can just do product_link(product) .

Update : or in a more compact way:

 def product_link(product) return link_to product.name, product, class: "last" if product == @products.last return link_to product.name, product) end 
+3
source share

All Articles