小编use*_*264的帖子

ruby3.2.1 更新后 Active::Record 的 params.permit 未定义方法 `=~'

最近我从ruby3.1.2-alpine3.15->更新ruby3.2.1-alpine3.17,我做的唯一的 gem 更新是mysql2,从0.5.30.5.5支持 openssql3。并遵循Ruby3.2.0 Breaking Changes并添加--jit --yjit标志。几乎所有应用程序都运行良好。但不知怎的,一段代码却没有。只是一个简单的params.permit

\n
permitted_params = params.permit(:category_id, :private, tags: [])\n
Run Code Online (Sandbox Code Playgroud)\n

失败的原因是

\n
NoMethodError:\n       undefined method `=~\' for #<HereGoes::MyModel>\n
Run Code Online (Sandbox Code Playgroud)\n

我的params看起来像这样:(其中“字段”只是额外的数据)。我看到的唯一奇怪的事情是嵌套的ActionController::Parameters,但同样的参数在旧的 ruby​​ 版本中解析得很好。

\n
"#<ActionController::Parameters  {\\"field_values\\"=>[#<ActionController::Parameters \n{\\"field_id\\"=>4, \\"value\\"=>\\"Test changed\\", \\"type\\"=>\\"string\\"} permitted: false>], #\n<HereGoes::MyModel id: nil, category_id: nil, uuid: \\"87ebb507-e381-4d57-b66c-10e51f10c014\\", \ncreated_at: nil, updated_at: nil, name: \\"Alphazap5\\", \\"fields\\"=> {\\"Viva11\\"=>nil,\\"Y-solowarm4 \nTextField\\"=>nil,\\"Y-solowarm4 StringField\\"=>nil,\\"Y-solowarm4 LocationsField\\"=>nil}}, \nbackup_id: 0, options: {}, tag_list: nil>=>{\\"id\\"=>1}} …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails alpine-linux

3
推荐指数
1
解决办法
140
查看次数

标签 统计

alpine-linux ×1

ruby ×1

ruby-on-rails ×1