传递params时,没有将Symbol隐式转换为Integer



我想将模型名称传递给prams[:required_model],但它给了我转换错误请告诉我是如何工作的

def method obj
required_model = obj.class.model_name.human
params[:required_model] = required_model
model_values_attributes = params[:required_model][:model_values_attributes]
model_values_attributes.each do |key, value|
if value[:value].blank?
field_values_attributes.delete(key)
else
value[:company_id] = current_company.id
end
end
end

当我执行params[:property][:model_values_attributes]时,这非常有效,所以我想将model_name传递给params[:ABC]中的任何内容

该错误意味着您正试图访问对象中的元素X,该对象使用符号而不是整数来响应[]

"hej"[2]
# => "j"
[1, 2, 3][0]
# => 1
[1, 2, 3][:foo]
# in `<main>': no implicit conversion of Symbol into Integer (TypeError)

因此,这行params[:required_model][:model_values_attributes]可能会失败,因为required_model是一个字符串(或数组(,而不是散列。或者仅仅因为没有实现向[]传递符号。

相关内容

  • 没有找到相关文章

最新更新