Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails体系结构,最好创建一个新模型,或者为现有模型添加一个布尔值?_Ruby On Rails_Ruby On Rails 3_Model - Fatal编程技术网

Ruby on rails Rails体系结构,最好创建一个新模型,或者为现有模型添加一个布尔值?

Ruby on rails Rails体系结构,最好创建一个新模型,或者为现有模型添加一个布尔值?,ruby-on-rails,ruby-on-rails-3,model,Ruby On Rails,Ruby On Rails 3,Model,我有一篇文章model article.rb(带有相关图片): 属性可访问:名称,:内容,:图像ID,:altname1 我现在想创作另一种文章,只针对城市。它们将出现在网站的完全不同的部分,与所有其他文章无关。但模型完全相同 创建一个新模型cityarticle.rb更好,还是在现有的文章模型中添加一个新的布尔列(cityarticle以true和false作为选项)更好。然后,我将向控制器添加一个新操作: def cityarticles @cityarticles = Article.

我有一篇文章model article.rb(带有相关图片):

属性可访问:名称,:内容,:图像ID,:altname1

我现在想创作另一种文章,只针对城市。它们将出现在网站的完全不同的部分,与所有其他文章无关。但模型完全相同

创建一个新模型cityarticle.rb更好,还是在现有的文章模型中添加一个新的布尔列(cityarticle以true和false作为选项)更好。然后,我将向控制器添加一个新操作:

def cityarticles
  @cityarticles = Article.where("cityarticle = ?", true)
end

对我来说,只保留一个模型比较容易,但可能有很好的理由使用一个新模型?性能如何?

新模型代表系统上的新“实体”

比如说《城市条约》扩展了这篇文章

它应该是一种新的代码清晰性和可扩展性模型,以增加“城市条约”的功能

您可以创建新的表脚手架或迁移:

rails g脚手架城市文章参考:文章


或做文章类政治社团。阅读

一些问题问问自己:这些类型的文章还有哪些不同之处?不同的人是否有权创建/编辑/删除它们?如何创建城市文章,而不让它意外地保存为非城市文章,或者反之亦然?我是否使用attr_accessible或strong_参数来防止用户使用传入的参数覆盖项目类型?不同类型是否有不同的验证规则(可能需要城市文章的城市名称)? 要得到我想要的东西有多难?我有多大可能会忘记指定要显示的文章类型,并显示所有这些文章


根据这些问题的答案,您应该能够决定什么样的数据结构最适合您。如果您使用Rails的STI模式,您可能会得到一个表,但两个不同的模型,作为一个解决方案。性能可能不是主要考虑因素,但如果这两类文章永远不会一起被查询,那么将它们拆分为单独的表可能会在性能方面稍好一些。

可能需要更多信息,但根据您所说,将其保留为一个模型或扩展当前的文章模型,如
CityArticle
。你也可以调查性病。一个更大的问题是模型之外的交互有多相似。我不会担心性能问题,我现在要买第二个型号。它对未来更加灵活,如果性能不是一个真正的问题,它可能是更好的方法。谢谢