2012-03-19 112 views
0

不知道如何解释我的问题。我有一个事件模型,其中一个字段被称为“状态”。我想在我看来有一个条件,我可以使用事件的状态来显示一条消息。在Ruby on Rails 3.2中使用Equal == 0

默认字段值为'0'。我已经有几个活动了。我的代码看起来像这样。但没有任何反应。我错过了什么吗?我也试过使用> 0

<% if event.state == 0 %> 
    <p> I will print a message here </p> 
<% end%> 

我在这里错过了什么吗?

+0

是的值的整数或字符串的? – GetSet 2012-03-19 18:39:48

+0

这是一个整数。状态\t int(11) – Benjamin 2012-03-19 18:41:17

+1

如果在'if'之前执行'<%Rails.logger.debug(event.state)%>',那么输出是什么? – ScottJShea 2012-03-19 18:56:15

回答

0

状态是作为varchar还是整数存储的?如果VARCHAR,尝试做

if event.state == "0"

+0

只是将其更改为varchar,然后尝试了你的建议,但没有运气。 – Benjamin 2012-03-19 18:47:23

+0

当你进入控制台并打印出'event.state'时会发生什么?尝试在该输出上运行'.class'并查看它输出的是什么类。 – jnevelson 2012-03-19 18:50:07

0

你是什么状态的数据类型?

如果其存储为字符串,然后尝试if event.state.eql?"0"

更多关于字符串的条件检查见Ruby String API

步骤来识别可能是什么问题。

  1. 检查事件是否存在?通过raise event.inspect
  2. 检查类event.state puts event.state.class.name.inspect
+0

只是试过了,没有运气。 – Benjamin 2012-03-19 18:52:17

+0

看看ruby api。刚编辑我的答案。 – asitmoharna 2012-03-19 18:57:23

+0

感谢您的支持。 – Benjamin 2012-03-19 19:40:30