urj*_*ils 6 controller ruby-on-rails
我无法将记录存储在数据库中,以下是我的代码
表单参数
控制器
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
Run Code Online (Sandbox Code Playgroud)
模型
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
Run Code Online (Sandbox Code Playgroud)
您可以在截图中看到我在保存时回滚。
请帮我。
编辑:
我已经进行了更改,现在我正在迭代参数并删除强参数。以下是我的代码
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
Run Code Online (Sandbox Code Playgroud)
仍然无法保存它。给我错误销售任务必须存在。
我通过更改字段名称解决了这个问题。
我将 sales_daily status_info 中的字段 sales_tasks_id 更改为 sales_task_id。
我需要一个单数外键名称而不是复数。
| 归档时间: |
|
| 查看次数: |
139 次 |
| 最近记录: |