在object.save之前验证关联的对象,或者在关联的对象验证失败时回滚object.save

时间:2009-07-27 05:41:59

标签: ruby-on-rails validation

直到生意......

有分配用户的任务

class Task < ActiveRecord::Base
has_many :task_assignments, :dependent => :destroy
has_many :assigned_users, :through => :task_assignments, :source => :user

  validates_associated :task_assignments
end

用户已分配任务

class User < ActiveRecord::Base
  has_many :task_assignments, :dependent => :destroy
  has_many :assigned_tasks, :through => :task_assignments, :source => :task
end

task_assignments表格如下所示

class TaskAssignment < ActiveRecord::Base
  validates_presence_of :user, :message => 'You must add some USERS fool!'  
  belongs_to :user
  belongs_to :task
end

这些协会似乎运作良好:0)

这就是擦除 - 当我通过/ tasks / new添加新任务时,我还想指定一个分配给该任务的用户列表,表单将在“params [:users_list] [:id]”中返回

我可以使用它,但我不希望表单验证,除非至少选择了一个用户。

我不能为我的生活弄清楚如何在模型中而不是在 create method 中进行验证。

正如您所看到的,我在任务方法中抛出了“验证_associated:task _assignments”,但无济于事。我显然是在我脑海里。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我认为您必须将参数命名为user_ids ...

f.e:

params[:users_ids][:id]