rails数组有多个字段

时间:2017-09-17 19:54:36

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4

我正在尝试创建一个具有多个内部字段的数组,以便在渲染时我可以保存每个字段的字段,如下所示:

@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 个答案:

答案 0 :(得分:2)

它是一个哈希,键是符号,所以你需要使用h[:s]

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

但是因为关键是平等的,你可以做得更好:

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

我会用小写字母表示键。

答案 1 :(得分:1)

访问哈希使用方括号而不是点。

试试这个:

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