Ruby on rails 处理动态生成的rails表单
我正在尝试处理以下输入Ruby on rails 处理动态生成的rails表单,ruby-on-rails,Ruby On Rails,我正在尝试处理以下输入 Parameters: {"utf8"=>"✓", "authenticity_token"=>"ogwCJx5J03kvFrve1B/BQ5jBlqsGaqP2En7sAe5XcBA=", "contact_attempt_id"=>"79","3"=>"8", "7"=>"22"} 我可以很容易地获取联系人的尝试id和响应代码。最后两个参数被证明是难以捉摸的 键是问题的数据库id,而值是答案的数据库id。我已经尝试在params散列中查
Parameters: {"utf8"=>"✓", "authenticity_token"=>"ogwCJx5J03kvFrve1B/BQ5jBlqsGaqP2En7sAe5XcBA=", "contact_attempt_id"=>"79","3"=>"8", "7"=>"22"}
我可以很容易地获取联系人的尝试id和响应代码。最后两个参数被证明是难以捉摸的
键是问题的数据库id,而值是答案的数据库id。我已经尝试在params散列中查找id的问题中循环,如下所示
questions.each do |q|
if !params[q.id].nil?
c = contact_responses.create
c.question_id = q.id
c.answer_id = params[q.id]
c.save
end
但是,我无法获得答案id。数据库中的
id
将是一个整数<代码>参数散列键是字符串/符号
(散列无差异访问
)
将您的代码更改为此
questions.each do |q|
unless params[q.id.to_s].blank?
c = contact_responses.create
c.question_id = q.id
c.answer_id = params[q.id.to_s].to_i
c.save
end
仍然得到同样的结果。答案id在数据库中显示为nil。如果我在创建联系人响应时硬编码了一个值,即c.answer\u id=40,它会将其保存到数据库中。尝试在
参数[q.id.to\s]
上执行to\u I
。修改了我的回答添加to_我只是在数据库中将其设置为0,而不是正确的值。它变为零的唯一方式是,当您将参数[q.id.to_s]
设置为无法转换为整数的字符串时。例如:“a”。to_i
将为零。尝试记录这些值,看看您是否真的得到了数字。仅注销params[q.id.to_s]返回正确的值,尝试将其转换为Int返回0。