Ruby on rails 向帖子添加类别的最佳方式是什么-RubyonRails博客
我是Ruby和Rails的新手,所以请容忍我。我已经创建了一个非常简单的博客应用程序,包含帖子和评论。一切都很好。我的下一个问题是关于添加类别。我想知道做这件事的最好方法。当谈到Rails时,我还看不太远,所以我想我会问 要明确的是,我希望一个帖子可以有多个类别,一个类别可以有多个帖子 创建一个“类别”表,然后使用posts和categories模型执行Ruby on rails 向帖子添加类别的最佳方式是什么-RubyonRails博客,ruby-on-rails,ruby,Ruby On Rails,Ruby,我是Ruby和Rails的新手,所以请容忍我。我已经创建了一个非常简单的博客应用程序,包含帖子和评论。一切都很好。我的下一个问题是关于添加类别。我想知道做这件事的最好方法。当谈到Rails时,我还看不太远,所以我想我会问 要明确的是,我希望一个帖子可以有多个类别,一个类别可以有多个帖子 创建一个“类别”表,然后使用posts和categories模型执行has_many:posts,has_many:categories?然后我是否还会设置routes.rb,以便将帖子嵌入到类别下 或者有没有一
has_many:posts
,has_many:categories
?然后我是否还会设置routes.rb
,以便将帖子嵌入到类别下
或者有没有一种更简单的方法,只需在现有的posts表中添加一个category列?(在这种情况下,我会想象拥有多个类别会很困难) 既然你想在类别和帖子之间建立多对多的关系,我会(而且确实会)使用一个标签插件,比如,你可以定义什么是“标签”,并称之为“类别”。简单而有效。在您的表单中,您可以使用白名单(如“编码”、“食谱”、“假期”)来限制不同类别的“标签”的可能值。这取决于您愿意投入多少精力-您可以使用标签插件,或者在帖子和类别模型中设置一个
has\u和\u归属\u many
关系,但是我推荐一些不同的东西
如果您创建第三个模型“分类”,作为帖子和类别之间的“粘合剂”,您可以拥有更多的控制权。Post有很多:类别:通过=>categorizations
和Category有很多:Post:through=>:categorizations
这样做的一个好处是,类别不存储在代码中,而是存储在数据库中,因此添加/删除/编辑它们不需要修改任何源代码。如何设置路由完全取决于您-您可以让/categories/:id
返回属于该类别的所有帖子的列表,或者使用一个或多个类别作为参数实现某种搜索表单
瑞安·贝茨(Ryan Bates)用几种不同的方法解释了这一切
我知道你提到你是RoR的新手,所以如果你想要的东西有点复杂,我道歉。正如我所说,插件可能最适合您的需要,但我发现,如果可能的话,自己编写插件总是很好的,另外还有更大的灵活性和可控制性:)