Ruby on rails 在Rails 5中,创建多对多关联,同时保存关系的任意一侧
标题可能不是很清楚(对不起,我试过了) 场景 我有一个多对多关系,Ruby on rails 在Rails 5中,创建多对多关联,同时保存关系的任意一侧,ruby-on-rails,ruby,ruby-on-rails-5,Ruby On Rails,Ruby,Ruby On Rails 5,标题可能不是很清楚(对不起,我试过了) 场景 我有一个多对多关系,计算机和软件,因此有一个连接模型计算机软件。我想有能力连接一台计算机与许多软件从目前可用的软件列表,而我正在创建一台新的计算机。下面是一些代码来解释: 计算机类
计算机
和软件
,因此有一个连接模型计算机软件
。我想有能力连接一台计算机与许多软件从目前可用的软件列表,而我正在创建一台新的计算机。下面是一些代码来解释:
计算机类
我的控制器如下所示:
类计算机控制器 #params.require(:computer).permit(:softwares)您需要允许那些嵌套在计算机参数中的属性:
def computer_params
params.require(:computer).permit(:name, software: [:something, :something_else])
end
您希望为嵌套软件模型允许的任何字段都需要进入该软件
键您需要在计算机参数
中允许这些嵌套属性:
def computer_params
params.require(:computer).permit(:name, software: [:something, :something_else])
end
无论您希望为嵌套软件模型允许哪些字段,都需要进入软件
键中,因为您有一个未经许可的参数
错误(根据控制器代码中的注释),如果您将参数显示为已提交给控制器,可能会有所帮助。@jvillian现在在编辑1中完成。我希望这会有帮助。如果我不清楚,很抱歉。我的意思是,如果您显示从服务器日志提交给控制器的参数(您看到的是unpermitted\u params
消息),可能会有所帮助。顺便说一句,required\u params
是什么?对不起,我一直在切碎和更改它,我忘了我已经将params.require(:computer)
抽象为一个单独的方法。现在更新了。我很确定您仍然没有显示提交给控制器的参数。它应该是启动…
和由…
处理之后服务器日志中的第三行,因为您有一个未经许可的参数
错误(根据控制器代码中的注释),如果您显示提交给控制器的参数,可能会有所帮助。@jvillian现在在编辑1中完成。我希望这会有帮助。如果我不清楚,很抱歉。我的意思是,如果您显示从服务器日志提交给控制器的参数(您看到的是unpermitted\u params
消息),可能会有所帮助。顺便说一句,required\u params
是什么?对不起,我一直在切碎和更改它,我忘了我已经将params.require(:computer)
抽象为一个单独的方法。现在更新了。我很确定您仍然没有显示提交给控制器的参数。它应该是服务器日志中启动…
和处理之后的第三行…