gpt4 book ai didi

ruby-on-rails - Rails 5 无法存储在数据库中

转载 作者:行者123 更新时间:2023-12-03 14:00:35 25 4
gpt4 key购买 nike

我无法将记录存储在数据库中,以下是我的代码

表单参数

enter image description here

Controller

def create
@sales_dailystatus_info = SalesDailystatusInfo.new(sales_dailystatus_info_params)
@sales_dailystatus_info.user_id = current_user.id
@project = @sales_dailystatus_info.project
respond_to do |format|
if @sales_dailystatus_info.save
byebug
format.js{}
format.html{redirect_to dashboard_project_path(@project)}
else
format.js{}
format.html{render nothing: true}
end
end
end

def sales_dailystatus_info_params
params.require(:sales_dailystatus_info).permit(:user_id, :project_id, :sales_task_id,
:task_time, :description)
end

模型
class SalesDailystatusInfo < ActiveRecord::Base    
belongs_to :project
belongs_to :user, optional: true
belongs_to :sales_task
validates :user_id, :sales_tasks_id, :task_time, presence: true
end

您可以在截图中看到我在保存时回滚。

请帮我。

编辑:

我已经进行了更改,现在我正在迭代参数并删除强参数。以下是我的代码
def create
params[:sales_dailystatus_info].values.each do |sales_dailystatus_info|

@sales_dailystatus_info = SalesDailystatusInfo.create(
project_id: sales_dailystatus_info[:project_id],
sales_tasks_id: sales_dailystatus_info[:sales_task_id],
task_time: sales_dailystatus_info[:task_time],
description: sales_dailystatus_info[:description],
user_id: current_user.id
);
byebug
end

respond_to do |format|
format.js{}
format.html{render nothing: true}
end
end

仍然无法保存它。给我错误销售任务必须存在。

最佳答案

查看您的日志,您似乎提交了两个 SalesDailyStatusInfo:

{... 'sales_daily_status_info" => { "0" => {"project_id" => ...}, "1" => { "project_id" => ... } } }  

您不允许在 params sanitizer 中使用这些键,因此 Unpermitted parameters: :0, :1 .结果是您没有将您提交的任何参数列入白名单并且参数哈希为空,您的模型验证失败。

为了让这个工作,你要么一次只发送一个项目,要么循环你的参数来创建两个 SalesDailyStatusInfo .

如果您需要进一步的帮助,请将前端表单代码添加到您的问题中。

希望能帮助到你 !

关于ruby-on-rails - Rails 5 无法存储在数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59829367/

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