gpt4 book ai didi

serialization - 如何使 rails strong_parameters + nested_attributes + serialize 工作?

转载 作者:行者123 更新时间:2023-12-01 11:17:53 25 4
gpt4 key购买 nike

我很难让 Rails 4 使用 nested_attributes 和序列化。我有:

class Client < ActiveRecord::Base
belongs_to :event
serialize :phones
end


class Event < ActiveRecord::Base
has_one :client
end


class EventsController < ApplicationController

...

def event_params
params.permit(client_attributes: [:phones])
end
end

当我通过事件时:

{client_attributes: { phones: 'string'}}

它有效,但是当我尝试时

{client_attributes: { phones: [{phone_1_hash},{phone_2_hash}]}}

我收到“Unpermitted parameters: phones”消息并且字段未保存...

我试过

class EventsController < ApplicationController

...

def event_params
params.permit(client_attributes: [phones:[]])
end
end

class Client < ActiveRecord::Base
belongs_to :event
serialize :phones, Array
end

但到目前为止没有任何帮助。任何建议,将不胜感激。谢谢!

最佳答案

Pfff - 终于明白了......有了强大的参数,未知的 key 就无法通过,所以这里的解决方案是:

class EventsController < ApplicationController

...

def event_params
params.permit(client_attributes: [ {phones: [:number, :type]}])
end
end

基于 http://edgeapi.rubyonrails.org/classes/ActionController/Parameters.html#method-i-permit-21

希望对大家有帮助。

我可以在此处的可序列化字段中指定 key ,但是用户添加的 key 怎么办?序列化字段是否可用于强参数? (这可能应该是一个新问题......)

关于serialization - 如何使 rails strong_parameters + nested_attributes + serialize 工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18380263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com