2014-11-06 96 views
0

我觉得这很简单,但显然我无法在SO上找到答案。根据表列中的值隐藏或显示视图的一部分

我有一个名为Events的模型和一个名为status的列。我想在我的视图上显示一个名为的徽章,等待,只有当值为event.status = pending时。

我已经试过这样:

<% if event.status.pending? %> 
    <span class="badge badge-warning">pending</span> 
<% end %> 

但是,当我这样做是错误说:

undefined method `pending?' for "unscheduled":String 

不定期计划是其他值的列可以有

回答

1

这将工作:

<% if event.status == 'pending' %> 

额外检查其presence

<% if event.status.present? && event.status == 'pending' %> 

最重要的是,你可以添加一个功能,您Event模型进行.pending?工作:

events.rb

def self.pending? 
    true if self.status == "pending" 
end 

然后你可以简单地从y我们的视图

<% if event.pending? %> 
+1

是的!谢谢。只要它让我接受,就会接受。 – NothingToSeeHere 2014-11-06 15:24:11

+0

我会如何传达'不是无'? – NothingToSeeHere 2014-11-06 15:24:55

+1

Yw,我更新了;) – 2014-11-06 15:28:12