【发布时间】:2014-06-14 05:21:01
【问题描述】:
我有一个名为 Timesheet 的模型,它有很多 TimesheetRows。 TimesheetRow 属于一个工作。
class Timesheet < ActiveRecord::Base
has_many :timesheet_rows, inverse_of: timesheet
end
class TimesheetRow < ActiveRecord::Base
belongs_to :timesheet, inverse_of: timesheet_rows
belongs_to :job
end
在从日志构建时间表对象时,我正在尝试检查与作业对应的 timesheet_row 是否已经构建,如下所示。
timesheet = Timesheet.new()
if timesheet.timesheet_rows.exists?(job_id:n)
#Do something
else
timesheet.timesheet_rows.build(job_id:n)
end
我已经尝试过 .exists?(condition) 、 .find(:all, condition) 、 .find_by_job_id(n) 、 .where(condition) 等。所有查询都来自数据库,因此在这里没有用处。
我已经浏览了几个小时,寻找一些神奇的方法,但找不到任何方法。真的,我只需要遍历所有关联吗?
类似的question。
谢谢
【问题讨论】:
-
为什么不在
TimesheetRow模型中的job_id上设置uniqueness validation?它适用于您的情况。 -
在保存时间表时会进行验证检查,对吗?我只想建立时间表而不是保存。
标签: ruby-on-rails ruby ruby-on-rails-3 activerecord ruby-on-rails-4