2017-09-17 87 views
0

我試圖創建一個具有多個內部字段陣列,使得在渲染我可以節省每一個領域,像這樣的時候:軌陣列與多個領域

@profile = [{module:"user", Description:"module of users"},{module:"products", Description:"module of products"}] 

渲染和創建記錄是這樣的:

@profile.each do |prof| 
    Record.create(module: prof.module, Description: prof.descripcion) 
end 

,但我得到這個錯誤:

NoMethodError (undefined method `module' for {:module=>"users", :description=>"module of users"}:Hash): 
    app/controllers/usuarios_controller.rb:31:in `block in busqueda_usuario_perfil' 
    app/controllers/usuarios_controller.rb:30:in `each' 
    app/controllers/usuarios_controller.rb:30:in `busqueda_usuario_perfil' 

回答

2

這是一個哈希和鍵符號,所以你需要使用h[:s]

@profile.each do |prof| 
    Record.create(module: prof[:module], description: prof[:descripcion]) 
end 

但由於按鍵都是平等的,你可以做的更好:

@profile.each do |prof| 
    Record.create(prof) 
end 

而且我會使用小寫字母作爲鍵。

+0

@ luis31歡迎您 –

1

要訪問哈希使用SQU是括號而不是點。

嘗試使用這樣的:

@profile.each do |prof| 
    Record.create(module: prof['module'], Description: prof['Description']) 
end 
+0

不再顯示我的錯誤,但保存記錄的字段爲空 – luis31