如果...(在1行中)添加内联类

时间:2012-10-02 21:51:11

标签: ruby-on-rails ruby class if-statement link-to

我只想在语句为真的情况下将类添加到 link_to

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

IF语句影响整行而不仅仅是:class 部分的问题。

我知道我可以用IF ELSE完成它,但有可能在一行中完成它吗?

2 个答案:

答案 0 :(得分:20)

<%= link_to product.name, product, :class => (product == @products.last ? "last" : "")  %>

答案 1 :(得分:3)

嗯,你可以在帮手中抽象出来:

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

然后在您看来,您可以product_link(product)

更新:或以更紧凑的方式:

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