有条件地在Rails中为link_to添加一个类

Don*_*n P 9 ruby-on-rails ruby-on-rails-4

我想有条件地将类"hidden"添加到Rails链接标记,具体取决于"accepted == true".

如果我不使用导轨,link_to我可以做<a href="#" class="foo bar <%= "hidden" if accepted == true %>" >.我怎么能在里面完成这个link_to

<%= link_to "Accept Friend Request", 
    "#", 
    class: "btn btn-success btn-sm btn-block requestSent ???hidden???",
    disabled: true %>
Run Code Online (Sandbox Code Playgroud)

Ada*_*nuk 24

如果对#{}使用插值,则在它之间放置的任何内容都将作为普通的旧代码运行.在此示例中,您可以在字符串中添加条件类,如下所示:

<%= link_to "Accept Friend Request", 
    "#", 
    class: "btn btn-success btn-sm btn-block requestSent #{'hidden' if accepted}",
    disabled: true %>
Run Code Online (Sandbox Code Playgroud)

请注意,您应该在类名"hidden"周围使用单引号.另请注意,当变量表示布尔值(true或false)时,您不需要明确说出if accepted == true.你可以简单地说if accepted.


Mur*_*foX 15

你可以在以下的地方做到link_to:

<% css_class = accepted ? "hidden" : "" %>
<%= link_to "Accept Friend Request", 
  "#", 
  class: "btn btn-success btn-sm btn-block requestSent #{css_class}",
  disabled: true %>
Run Code Online (Sandbox Code Playgroud)