Rails中的查询或方法?

时间:2009-10-12 14:11:28

标签: ruby-on-rails database-design

我正在创建一个Rails应用程序,并想知道哪个更好:

  1. 在数据库中存储默认数据(如类别名称)并通过查询获取数据;

  2. 或在ApplicationController中创建一个方法,以category_id作为参数,返回有关所需类别的信息?

  3. Obs:很少会改变这些值。

    谢谢你, 加布里埃尔。

2 个答案:

答案 0 :(得分:2)

我总是以这种方式思考:

  • 有多少元素?如果超过3我将使用db
  • 是我自己还是客户的申请?如果它是一个客户端,我会使用db(在管理员中使用小crud interace,这样即使在开发结束后他也可以自己添加/删除/修改类别)。

类别之类的东西是来自客户的数据 - 如果它们来自客户,则让客户控制内部的内容(并节省您自己的时间) 改变源代码)。像这样,他们可以提供excel / cvs文件,您可以使用它来为初始记录播种数据库(并且不更改源代码)。它也更容易 如果类别在db中,稍后在SQL(连接)中制作不同的技巧。

恕我直言,我将使用硬编码散列/数组的唯一地方是一些(2-3)多值属性,如用户角色(当然,如果它们是静态的)。

答案 1 :(得分:1)

一种常见的模式可能是将数据存储在数据库表中(在这种情况下,创建一个categories表)并像往常一样使用ActiveRecord关联。

您可以拥有种子数据来维护类别的值。有很多插件可以解决种子数据问题,但是现在Rails有一个rake任务,可以在db / seed.rb中运行代码。 This railscast将向您介绍详细信息。