2008-12-02 51 views
1

我有這個測驗欄應用程序鏈接到一個IRC機器人誰問問題(是,在IRC),我有這個Question模型,其中包含,以及問題,答案,提示和其他一些事情。Rails應用程序,並需要添加標籤到模型

我開始與Quiz模型(如,說,特殊的萬聖節或聖誕節測驗)與在questionsquiz_id,那麼,我告訴自己,這將是很好的能夠進行分類的問題,所以我添加了Category模型(如電影或書籍),其中category_idquestions中。

現在,我的用戶希望能夠將問題添加到一個或多個測驗,並指定一個或多個類別的問題......

所以,我一直在想去除QuizCategory模型並用標籤替換它們,這樣就會出現萬聖節標籤,電影標籤和問題可以爲標籤「萬聖節電影聖誕節」。

在我searchs,我已經看到了不少辦法,包括像acts_as_taggable標籤,acts_as_taggable_on_steroids或任何其他有人想到:-)

現在,我不知道我應該做的,所以,我問,你做了什麼,你做了什麼,爲什麼你這樣做。

+3

你有一個龐大的unib排我的朋友。 – 2008-12-15 21:02:35

回答

2

acts_as_taggable_on_steroids較舊,但仍然有效,並且仍在維護中。請確保您正在訪問的主存儲庫吧:

http://svn.viney.net.nz/things/rails/plugins/acts_as_taggable_on_steroids/

您可以使用named_scopes acts_as_taggable_on_steroids,這裏有一篇文章,介紹如何:

Speed Up and named_scope acts_as_taggable_on_steroids Finds

實際添加到您的模型是非常平凡的(這是直接從上面的文章):

named_scope :tagged_with, lambda { |tags| YourModel.find_options_for_find_tagged_with(tags) } 
2

我認爲類別可以很容易地被標籤取代,因爲它們都被用來添加元數據到一個問題。

但是,我對測驗模型有所懷疑。如果您只使用測驗模式對問題進行分組,則可以用標籤替換它。但我認爲測驗模型將包括更多的功能,而不僅僅是單獨分組。例如,保持比分,挑選下一個問題等。所以我會保持Quic模型不變。

要實現標記,acts_as_taggable_on_steroids確實有效,但有點舊。在後臺使用named_scope的標記插件會很好,因爲它會使插件更加靈活。

相關問題