Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Ruby三值If错误_Ruby On Rails_Ruby_Ruby On Rails 2 - Fatal编程技术网

Ruby on rails Ruby三值If错误

Ruby on rails Ruby三值If错误,ruby-on-rails,ruby,ruby-on-rails-2,Ruby On Rails,Ruby,Ruby On Rails 2,我试图做的是打印挂起的引号如果计数是0或>1并且挂起的引号如果计数==1,但是如果计数是>1,输出是2 true,其他两种情况工作正常,我看不到任何明显的变化 <%= @pending.nil? ? '0' : @pending.count %> <%= (!@pending.nil? and @pending.count > 1) or (!@pending.nil? and @pending.count == 0) ? 'Pending Quotes' : 'Pend

我试图做的是打印
挂起的引号
如果计数是
0
>1
并且
挂起的引号
如果计数
==1
,但是如果
计数是
>1
,输出是
2 true
,其他两种情况工作正常,我看不到任何明显的变化

<%= @pending.nil? ? '0' : @pending.count %>
<%= (!@pending.nil? and @pending.count > 1) or (!@pending.nil? and @pending.count == 0) ? 'Pending Quotes' : 'Pending Quote' %>

1) 或者(!@pending.nil?和@pending.count==0)?'挂起的引号“:”挂起的引号“%”>

你必须这样写:

((!@pending.nil? and @pending.count > 1) or (!@pending.nil? and @pending.count == 0)) ? 'Pending Quotes' : 'Pending Quote'
你也可以把它写成

(!@pending.nil? && (@pending.count > 1 || @pending.count == 0)) ? 'Pending Quotes' : 'Pending Quote'
我会使用助手:



啊,现在觉得自己很傻。谢谢,如果允许,我会将其标记为接受:)注意:在Ruby中,使用
&&
|
进行布尔表达式是惯用的。使用
进行流量控制。另外,可能值得注意的是,“!x.nil?”通常比简单的“x”更好。@tokland我同意你的看法,我对ROR一点也不了解。。所以我只选择了Ruby:)谢谢,这是一个非常简洁的表达方式
<%= pluralize(@pending, 'Pending Quote') %>
@pending.try(:count) == 1 ? 'Pending Quote' : 'Pending Quotes'