2010-12-19 50 views
0

我需要查看散列是否包含在視圖中的另一個散列中。但我不確定是否正確創建了散列,當我在視圖中輸入「<%= y%>」時,它會顯示y的所有輸出,這使我認爲它是一個數組。通常如果它是一個散列,我只會看到「#」對不對?創建散列的單個實例並與導軌中的另一個散列進行比較?

我知道x應具有Ÿ但我仍然得到「沒有y是不是X」

someview.html.erb 

<% x = @books.sifi %> 
<% y = { :title => spaceship, :author => mark, :price => 9.99, :genre => sifi} %> 

<% if x.include?(y) %> 
    yes y is in x 
<% else %> 
    no y is not in x 
<% end %> 

漂亮的新軌道,因此任何幫助將不勝感激!謝謝〜!

+1

這看起來像太多的邏輯一個看法。嘗試把它放進一個幫手。 – 2010-12-19 11:13:00

+0

是的,它有很多邏輯,但是這與基於用戶操作刷新的ajax調用綁定在一起,我需要在刷新上運行此邏輯以確定視圖中吐出的內容〜是否有更好的/更簡單的方法來做到這一點? – thedeepfield 2010-12-19 20:44:46

+0

它可以幫助您使用調試助手。 http://api.rubyonrails.org/classes/ActionView/Helpers/DebugHelper.html – noodl 2010-12-19 20:46:12

回答

1

y是您定義的散列。 x最有可能是一個數組。你的代碼在這方面很好。要確定您可以執行的對象的類別:<%= y.class %>

(我假設是SIFI飛船等也有可能不是在你看來變量?如果是這樣,那麼要麼把這些值在''""。)

+0

太空船,馬克,9.99等......都是變數。當我把<%= x %>放在視圖中時,我得到了「######」,如果我做了類似於<%= x [0] [:title]%>的東西,它會吐出實際的字符串..讓我相信它是一個哈希.. – thedeepfield 2010-12-19 20:36:30

+0

其實,x是一個散列數組。所以x [0]訪問Array x中的第一個散列(「記錄」),[:title]訪問Hash中該鍵的值。 – Zabba 2010-12-19 20:39:19

+0

那麼有沒有辦法比較x和y?我想檢查是否散列x陣列中存在y-hash ... – thedeepfield 2010-12-19 20:42:00