2009-07-27 54 views
0

權正事回滾object.save ....object.save之前驗證關聯的對象,或在相關對象vaidation失敗

有任務,已分配的用戶

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)

這裏有個致命的 - 當我通過/任務/新添加一個新的任務,我也想指定分配給該任務的用戶列表,表單在「params [:users_list] [:id]」中返回。

我可以得到這個工作,但我不希望窗體驗證,除非有至少一個用戶選擇。

我不能爲我的生活弄清楚如何讓這個驗證發生在模型中,而不是在創建方法。你可以看到,我在任務方法中拋出了「驗證_associated:任務_分配」,但無濟於事。我很清楚我的頭腦。

感謝您的幫助。

回答

0

我認爲你必須命名參數user_ids ...

f.e:

params[:users_ids][:id]