Ruby on rails 3.2 Rails:读取哈希

Ruby on rails 3.2 Rails:读取哈希,ruby-on-rails-3.2,Ruby On Rails 3.2,我的控制器中有一个哈希数据: "accept"=>["{:id=>\"12f310f1d9b8f\", :first_name=>\"San\", :last_name=>\"Jori\", :name=>\"Jori,Santosh\", :email=>\"san.jori@west.com\", :gender=>nil, :birthday=>nil, :profile_picture=>nil, :relation=>

我的控制器中有一个哈希数据:

 "accept"=>["{:id=>\"12f310f1d9b8f\",
:first_name=>\"San\",
:last_name=>\"Jori\",
 :name=>\"Jori,Santosh\",
 :email=>\"san.jori@west.com\",
 :gender=>nil,
:birthday=>nil,
:profile_picture=>nil,
:relation=>nil}"],
但是我看不懂

我试着这样读:

  if params[:accept].present?
   params[:accept].each do |customer|
   @customer = current_user.customers.new(:name => customer[:name], :email => customer[:email])
   end
  end
但它给出了错误:

  no implicit conversion of Symbol into Integer

有人帮忙吗?请。

首先,在您的示例中,哈希名称是
accept
而不是
customer
。这是从一个更大的变量中提取的吗?是params哈希吗

其次,它是一个散列数组,因此您需要从数组中获取一个散列结果集以供使用。你是怎么做到的?在您的示例中,客户对象是什么?这可能是错误的原因,您正试图访问哈希样式的键,但您正在对数组执行此操作,需要一个int键才能访问特定的成员,如下所示:
customer=accept[0]#数组中的第一个哈希
或内联假设
customer
=
accept

@customer = current_user.customers.new(:name => customer[0][:name], :email => customer[0][:email])
也就是说,如果所有哈希键都与客户对象属性匹配,那么您可以直接将哈希传递给
客户。新的
方法:

@customer = current_user.customers.new(accept)
这通常在控制器
create
操作中完成,如下所示:

def create
  @customer = Customer.new(params[:customer])
  ...
end

是的,accept是一个散列数组,我想读取每个散列中的值。它包含许多参数,我需要其中的“名称”和“电子邮件”。因此,我无法传递new(accept)或new(params[:customer])是否有任何方法可以在循环中运行此::name=>customer[0][:name],:email=>customer[0][:email]。我已经用我正在使用的循环更新了这个问题。发布完整的参数,在你的例子中,摘录的哈希包含在引号中,这将使它成为一个字符串。。。在您的代码中输出
accept
对象的类名,并告诉我结果
puts params[:accept]。class
puts params[:accept][0]。class
嘿,我在视图中尝试了这个方法:>但结果为零。你能告诉我把它放在哪里吗?我得到这个:参数的o/p[:accept]是--“{:id=>\”base/112f310f1d9b8f\”,:first\u name=>\“San\”,:last\u name=>\“Jori\”,:name=>\“Jori,San\”,:email=>San。jori@west.com\“,:gender=>nil,:birth=>nil,:profile\u picture=>nil,:relation=>nil}”{:id=>“2293b58ce3aa28\,:first\u name=>“Yog\”,:last\u name=>Shel\,:name=>“Yog Shel\”,:email=>\“yog。shel99@gmail.com\“,:gender=>nil,:birth=>nil,:profile_picture=>nil,:relation=>nil}”