我觉得这很简单,但显然我找不到答案。
我有一个名为Events
的模型和一个名为status
的列。我想在我的视图中显示一个名为待处理的徽章,仅当event.status = pending
的值时才显示。
我试过这个:
<% if event.status.pending? %>
<span class="badge badge-warning">pending</span>
<% end %>
但是当我这样做时,错误说:
undefined method `pending?' for "unscheduled":String
计划外和计划是该列可能具有的其他值
答案 0 :(得分: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
然后您可以从视图
中调用它<% if event.pending? %>