我有一張紙條模型,用下面的聯想如何在不需要從RoR中的模型訪問current_user.id的情況下實現此代碼?
note.rb
has_many :note_categories, :dependent => :destroy
has_many :categories, :through => :note_categories
的NoteCategory模型的建立是爲了充當筆記和類別之間的連接表。
我需要實現以下幾點:
- 一個用戶從一個音符一個類別。這可以通過從註釋中刪除一個類別(刪除note_categories表中的一個條目),或者通過完全刪除註釋(刪除note_categories表中與該註釋有關的所有條目)來實現
- 在行之前note_categories被刪除,我需要確定是否從筆記刪除類別的用戶是最初創建該類別的同一用戶(類別模型中的創建者字段)
- 如果它是相同的用戶,則類別條目本身被刪除
很明顯要做到這一點,我需要訪問用戶的ID,以檢查類別的創建者字段。我已經在NoteCategory模型中使用before_destroy方法來做其他事情,但是我不能在那裏訪問current_user.id,因爲它是一個模型,而current_user是Application Controller中的一個方法。從我在這裏讀到的問題來看,從模型中訪問當前用戶的id似乎是不好的形式。
我不認爲我可以在這種情況下使用控制器,因爲當筆記被刪除時,:dependent => :destroy
這一行意味着note_categories中的關聯行也會被刪除。我也需要在這種情況下執行創建者檢查,但是note_categories行通過模型中的銷燬方法刪除,而不是控制器,這是:dependent => :destroy
指定的行爲。
那麼我應該怎麼去做呢?謝謝閱讀!
對不起,我忘了在原始問題中包含一些東西,這意味着我無法使用控制器來解決此問題。我現在編輯它。 – ben 2010-08-24 05:12:00