2012-03-19 62 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