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'