Ruby on rails 5 NoMethodError(未定义的方法'permit';for#<;数组:0x007f51c020bd18>;

Ruby on rails 5 NoMethodError(未定义的方法'permit';for#<;数组:0x007f51c020bd18>;,ruby-on-rails-5,nomethoderror,Ruby On Rails 5,Nomethoderror,我得到这个错误,并使用Rails 5 命名错误(未定义的方法许可证# app/controllers/traumas_controller.rb:99:intrauma_params' app/controllers/traumas\u controller.rb:25:in“创建多个” 控制器参数如下所示 2016年10月4日,在127.0.0.1的“创伤/创建多个”后开始 20:09:36+0530创伤控制员处理#创建多个JS 参数:{“utf8”=>“✓", "字段“=>[{“挫伤”=>“

我得到这个错误,并使用Rails 5

命名错误(未定义的方法<代码>许可证# app/controllers/traumas_controller.rb:99:intrauma_params' app/controllers/traumas\u controller.rb:25:in“创建多个”

控制器参数如下所示

2016年10月4日,在127.0.0.1的“创伤/创建多个”后开始 20:09:36+0530创伤控制员处理#创建多个JS
参数:{“utf8”=>“✓", "字段“=>[{“挫伤”=>“1”,“烧伤”=>”, “现场”=>“现场”,“紧急情况详细信息”=>“96”, “创伤地区”=>“回头”}],“提交”=>“提交”}

我正在尝试在controller中创建以下记录:

  def create_multiple
    trauma_params
    params[:fields].each do |values|
       u = Trauma.create(values)
    end
  end

def trauma_params
        params.require(:fields).permit(:fields => [])
end
请帮我解决这个问题

提前谢谢


Kiran.

我通过引用这个()github问题解决了这个问题

编辑

对于以下参数(在数组中):

参数:{“字段”=>[{“挫伤”=>“1”,“烧伤”=>“”, “现场”=>“现场”,“紧急情况详细信息”=>“96”, “创伤地区”=>“回头”}],“提交”=>“提交”}

我们可以做到:

def trauma_params
  params.require(:fields).map do |p|
    ActionController::Parameters.new(p).permit(
      :contusions,
      :burns,
      :at_scene,
      :emergency_detail_id,
      :trauma_region
    )
  end
end
参数:

{"fields"=>[{"contusions"=>"1", "burns"=>"", "at_scene"=>"At Scene", "emergency_detail_id"=>"96", "trauma_region"=>"Head-Back"}]}
白名单对象数组,需要“字段”属性:

def trauma_params
  params.permit(fields: [
   :contusions,
   :burns,
   :at_scene,
   :emergency_detail_id,
   :trauma_region
  ])
  .require(:fields)
end

来源:

我是否正确理解,您打算接受任何数组,包括:fields参数的空数组?我认为.permit不是执行输入验证的正确方法。如果删除.permit语句,会发生什么情况?我得到
NoMethodError(对于#的未定义方法“具有#不相关#访问权限”):'如何解决这个问题?
@JosephN.Rails 5现在返回
ActionController::Parameters
,因此不需要调用。第三行现在看起来像:
p.permit(
@craineum现在返回以下错误
ArgumentError(在分配属性时,必须将哈希作为参数传递):
这是代码
参数。require(:newParams)。map do | p | p.permit(:value,:tag,:position)end
newParams是一个数组