我想在rails函數中編寫一個ruby函數,它將爲任何模型創建一個新對象。這是我到目前爲止的內容Ruby on Rails:將屬性值分配到泛型模型
def create_populated_object(model)
test_object = model.new
model.columns.each do |column|
attr_name = column.name
attr_type = column.type
#test_object.assign_attributes(attr_name+':'+ "9")
puts "#{':'+attr_name} => #{attr_type}"
if attr_type.to_s == 'integer'
b = '{:' + attr_name.to_s + '=>' + 9.to_s + '}'
puts b
test_object.assign_attributes(b)
puts "it worked"
elsif attr_type.to_s == 'string'
puts "string"
elsif attr_type.to_s == 'datetime'
puts "date time"
elsif attr_type.to_s == 'boolean'
puts "boolean"
elsif attr_type.to_s == 'text'
puts "text"
else
puts "UNKNOWN ATTRIBUTE TYPE"
end
end
puts test_object
end
在我的示例中,id是模型的第一個屬性。我嘗試了價值9分配給它,但我不斷收到此錯誤:
NoMethodError:未定義的方法`stringify_keys'爲‘{:ID => 9}’:字符串
任何人都知道如何解決這一問題?
總是讓一切都涉及到這個問題的一個小例子。在這裏,分配的代碼和數據庫狀態以及其他任何解釋「我嘗試給它賦值9」。閱讀幫助重新問好問題。 (即使事實證明,在這個特定的問題中有足夠的解決方案。) – philipxy