==包含值数组

时间:2015-11-18 15:12:35

标签: ruby-on-rails arrays ruby

使其等同于:

<% unless @article.type.name == "BLOG" || @article.type.name == "LIVE BLOG" %>

为什么我不能提供如下数组的值?

<% unless @article.type.name == ["BLOG", "LIVE BLOG"] %>

这有诀窍,还是不存在?

3 个答案:

答案 0 :(得分:5)

在导轨中,您可以使用in?

unless article.type.name.in?(['blog', 'live blog'])

在普通红宝石中,它是include?

unless ['blog', 'live blog'].include?(article.type.name)

答案 1 :(得分:1)

您可以使用include?

<% unless ["BLOG", "LIVE BLOG"].include?(@article.type.name)  %>

答案 2 :(得分:1)

另一个“技巧”可能是使用正则表达式:

<% unless @article.type.name =~ /^(BLOG|LIVE BLOG)$/ %>

也许仅仅检查“博客”就足够了:

<% unless @article.type.name =~ /blog/i %>

您还可以使用if!~代替unless=~

<% if @article.type.name !~ /blog/i %>