2011-07-13 56 views
0

我有以下的關聯Rails 3中,ActiveRecord的,在的has_many協會檢測變化

class User < ActiveRecord::base 
    has_many :memberships 
end 

我想要做的是,一些成員已被添加或從user.memberships取出users_controller更新動作檢測。

關於如何實現這個的任何想法或建議?

感謝您的任何幫助。

編輯:我道歉,如果問題不明確。

用戶通過父子關係鏈接在一起。這種關係通過家庭圈子的成員來實現。

我想要的是,當孩子用戶自動加入「課堂」圈子時,孩子的父母也加入同一個「課堂」圈子。換句話說,向小孩用戶添加/刪除成員資格需要傳播給他的父母用戶。

+1

我們需要更多的上下文。 – Preacher

回答

1

我很抱歉,如果上下文不是很清楚。 因此首先澄清一些內容:

用戶通過父子關係鏈接在一起。這種關係通過家庭圈子的成員來實現。

我想要的是,當孩子用戶自動加入「課堂」圈子時,孩子的父母也加入同一個「課堂」圈子。換句話說,向小孩用戶添加/刪除成員資格需要傳播給他的父母用戶。

現在的解決方案:
我已經解決了,這是通過將after_save的和before_destroy方法的會員制模式來檢查的方法是用戶是孩子,在這種情況下,以創建/銷燬的家長會員。有幾個棘手的邊緣案例我不得不解決,但代碼似乎工作正常。

最後請注意:我的第一個想法是在成員已被添加或刪除,然後檢查用戶是否是一個孩子用戶的用戶控制器以某種方式檢測....

0

補充說明如何?自上次訪問以來?

如果是這樣,則創建一個「讀」布爾列,當您訪問時更新。

否則,詳細說明。 :)

+0

添加插入的手段。所以添加布爾值將不起作用,除非我爲每個用戶(讀者)維護它。但謝謝你的回覆。 –

1

我知道我遲到了到這裏的派對,但是對於未來的旅行者ActiveRecord公開了before_add,after_add,before_removeafter_remove針對這些場景。