1
我試圖使用Hash對象等爲ActiveRecord的型號中表單助手:表單助手和Hash的型號爲
<% hash = { :some_key => 'some_value' } %>
<% fields_for "hash", hash do |f| %>
<%= f.text_field :some_key %>
<% end %>
據我所知,它試圖撥打:some_key方法哈希對象。我試圖重寫哈希類的'發送'方法,但沒有運氣:
def send(symbol, args = [])
if self.has_key?(symbol)
self[ symbol ]
elsif self.has_key?(symbol.to_s)
self[ symbol.to_s ]
else
super
end
end
你有什麼想法我怎麼能用這個?
感謝您的幫助。
您正在尋找與符號密鑰的哈希,一個字符串。這是行不通的。但我不確定這是一個好主意,儘管我不能指出爲什麼...... – Chowlett 2012-02-20 16:47:36
啊......你是對的。那是我的錯。那是因爲我確定我的鑰匙是字符串。也改變了例子。謝謝 – ABrukish 2012-02-20 17:00:13
您是否考慮過使用['OpenStruct'](http://www.ruby-doc.org/stdlib-1.9.3/libdoc/ostruct/rdoc/OpenStruct.html)或['Struct'](http:///www.ruby-doc.org/core-1.9.3/Struct.html)而不是'Hash'? – 2012-02-20 17:41:57