Ruby on rails 5 NoMethodError(未定义的方法'permit';for#<;数组:0x007f51c020bd18>;
我得到这个错误,并使用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创伤控制员处理#创建多个JSRuby 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”=>“✓", "字段“=>[{“挫伤”=>“
参数:{“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是一个数组