gpt4 book ai didi

ruby-on-rails-4 - 多级accepts_nested_attributes_for时的Rails 4强参数

转载 作者:行者123 更新时间:2023-12-04 12:53:15 27 4
gpt4 key购买 nike

当我尝试保存具有多个accepts_nested_attribetus_for 级别的模型时遇到问题。

我的用例是有一个用户页面,用户可以在其中创建多个问题,每个问题也可以创建多个答案。

发生的事情是,由于提交页面上可能有多个问题,提交时用户的参数散列如下所示:

{"user"=>{"questions_attributes"=>{"0"=>{"desc"=>"question", "answers_attributes"=>{"0"=>{"ans"=>""}}}}}}

因此,我得到的错误是“不允许的参数:0”。如何正确设置强参数权限,以便正确保存所有模型?我可以循环浏览问题,并单独保存每个问题,这很有效,但我希望有一种更简洁的方法。

用户名
has_many :questions
accepts_nested_attributes_for :questions

问题.rb
belongs_to :user
has_many :answers
accepts_nested_attributes_for :answers

答案.rb
belongs_to :question

用户 Controller .rb
def update
user = User.find_by_id params[:id]
user.questions.create question_params(params[:user])
end

def question_params(params)
params.require(:question_attributes).permit(:desc, {:answers_attributes => [:ans]}
end

最佳答案

尝试这个

def update
user = User.find_by_id params[:id]
user.update(user_params)
end

def user_params
params.require(:user).permit(:desc, :questions_attributes => [:question, answers_attributes => [:ans]])
end

关于ruby-on-rails-4 - 多级accepts_nested_attributes_for时的Rails 4强参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32287659/

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