我有2个模型,分别对应2个独立的数据库表
一个是task
,另一个是bookedhour
关系就像
Task: has_many booked_hours
BookedHour: belongs_to Task
要创建任务,该任务的模型BookedHour
需要预订时间。它以新任务的形式出现,并且attr_accessor
在任务模型中声明
现在我想在保存任务时存储任务和预订时间。(基本上我想将新的task
和bookedHours
保存在单个中点击)
我在创建任务的方法中使用以下代码,但它确实无效。
保存task(@task.save)
BookedHour.create(:user_id => @user_id, :project_id => session[:actual_project].id, :hours_booked => params[:task][:spend_today])
我在控制台中关注并且不保存bookedhours
的记录,但它成功保存了新任务。
BookedHour Columns (0.7ms) SHOW FIELDS FROM `booked_hours`
SQL (0.1ms) BEGIN
SQL (0.0ms) ROLLBACK
答案 0 :(得分:1)
Create实际上不会将记录保存到数据库中,需要创建!创建和保存。
此外,BookedHour.create中没有任何地方可以将任务记录与预订的小时记录相关联。
尝试以下方法:
BookedHour.create!(
:task_id => @task.id,
:user_id => @user_id,
:project_id => session[:actual_project].id,
:hours_booked => params[:task][:spend_today]
)
答案 1 :(得分:1)
尝试
@task.booked_hours.create!(:user_id => @user_id,
:project_id => session[:actual_project].id,
:hours_booked => params[:task][:spend_today])
如果出现问题(如果事务回滚,则存在问题),您将看到异常,并且您将能够解决该问题。
您可以发布BookedHour课程的验证部分吗? (所有行以“belongs_to”开头,“验证_...”和“验证”在类定义中)