2017-01-06 77 views
0

我面臨着紅寶石的問題,因爲我想獲得一個嵌套的屬性,這樣的:導軌 - 無點符號無法獲得嵌套屬性

row :ratings do |ratings| 
     table_for ratings.list do 
      column :promptness do |list| 
      table_for rating.list.promptness do 
       column :rating 
       column :comment 
      end 
      end 
     end 
end 

我可以得到的點數據符號,但我不能使它工作使用[]符號是這樣的:

['a', 'b', 'c'].each do |el| 
      table_for ratings.list do 
      column el do |list| 
       table_for rating.list[el] do 
       column :rating 
       column :comment 
       end 
      end 
      end 
     end 

了哪些原因呢?我怎麼能最終解決這個問題? 感謝您的幫助

+0

JavaScript中的點和散列符號是相同的。但不是在Ruby中。只有在某些情況下(例如打開結構)纔可以互換。 –

+0

@maxple好的,謝謝你的回答。那麼在我的情況下,最好的解決方案是什麼?任何想法? –

回答

1

你在這裏什麼:

table_for rating.list[el] do 

將無法​​正常工作,就像你知道的,因爲list並不[]迴應。

相反,你可以做到這一點,因爲el是一個符號:

table_for rating.list.send(el) do 

What does send() do in Ruby?