2008-12-02 72 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的标记插件会很好,因为它会使插件更加灵活。

相关问题