如果有条件,红宝石会改变标签的颜色

时间:2016-09-22 13:00:31

标签: ruby-on-rails ruby

我刚刚开始学习代码(和英语......),我有一个带有ruby条件的概率。 :O

我有一个数组,"类别"谁依赖"出版"交。

我想我的类别中的标签颜色会改变为catgeory吗?

(对不起我的英语,我为学习^^工作)

这是我发布产品的简单形式的一部分(它的错误仅仅是为了展示我的想法)

 <%= f.input :Category, collection:[" Application ", "Nature" ,"Design", "Science"], prompt: "Choisissez votre categorie"%>**

它是我所有产品的索引视图的一部分

<% if Category["Nature"]? %>
 <span class="label label-info">
 <h6><%= publication.Category %></h6>
</span>
<% else if Category["Tech"]? %>
 <span class="label label-sucess">
<h6><%= publication.Category %></h6>
</span>
<%end%>

请求帮助

2 个答案:

答案 0 :(得分:0)

创建一个包含类别及其各自类的哈希

color_hash = {
  "Nature" => 'label-info',
  "Tech" => 'label-success',
  "Application" => 'label-info'
}

只需传递publication.Category

中的类别值即可
<span class="label <%= color_hash[publication.Category] %>">
  <h6><%= publication.Category %></h6>
</span>

如果publication.Category"Tech",则上述代码为:

<span class="label label-success">
  <h6><%= publication.Category %></h6>
</span>

答案 1 :(得分:0)

上述建议的替代方法是创建辅助方法。

def publication_label(category)
  colors = {
    'Nature'      => 'label-info',
    'Tech'        => 'label-success',
    'Application' => 'label-info'
  }

  content_tag(:span, class: "label #{colors[category]}") do
    content_tag(:h6, category)
  end
end

(因为你可能也是rails的新手,你可以把它放到/app/helpers/publications_helper.rb中)。

有了这个助手,你的观点可以简单如下:

<%= publication_label publication.Category %>