0

我有 2 个模型对应于 2 个单独的数据库表。
一个是task,另一个是bookedhour

关系就像

Task: has_many booked_hours
BookedHour: belongs_to Task

要创建任务,它需要从模型中为该任务预订小时数。BookedHour它采用新任务的形式,并attr_accessor在任务模型中声明。
现在我想存储该任务预订保存任务的时间。(基本上我想保存新的taskbookedHours单击一次)

我在任务的创建方法中使用了以下代码,但它不起作用。我在保存后写了这一行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
4

2 回答 2

1

尝试

@task.booked_hours.create!(:user_id => @user_id, 
                           :project_id => session[:actual_project].id, 
                           :hours_booked => params[:task][:spend_today])

如果出现问题(如果事务回滚,则会出现问题),您将看到异常,您将能够解决它。

您可以发布 BookedHour 课程的验证部分吗?(类定义中所有以“belongs_to”、“validate_...”和“validates”开头的行)

于 2012-10-02T08:57:57.527 回答
1

创建实际上不会将记录保存到数据库中,您需要创建!创建和保存。

在 BookedHour.create 中也没有任何地方可以将任务记录与预定时间记录相关联。

尝试以下操作:

BookedHour.create!(
  :task_id => @task.id, 
  :user_id => @user_id, 
  :project_id => session[:actual_project].id, 
  :hours_booked => params[:task][:spend_today]
)
于 2012-10-02T07:47:01.977 回答