【问题标题】:A model with a handful of id's一个有几个 id 的模型
【发布时间】:2012-02-26 15:50:45
【问题描述】:

我有一个模型,它有许多其他模型,但这个模型只需要 10 个或更少的 id。

假设它有,浴室、厨房、客厅(为了争论),新记录可能永远不需要更改。

制作这样一个不使用数据库表的模型的最佳方法是什么?

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 models


    【解决方案1】:

    这可能不是最佳实践,但为了解决同样的问题,我刚刚在我的模型中指定了一个集合,如下所示:

    ROOM_TYPES = [ "Bathroom", "Living Room", "Kitchen" ]
    

    然后在视图中:

    <%= f.select(:room_type, Project::ROOM_TYPES, {:prompt => '...'}) %>
    

    (将Project 替换为您的实际型号名称。)

    超级简单,几乎没有设置。我可以看到它是多么难以维护,因为没有访问 Rails 代码就无法添加项目,但它确实可以快速完成工作。

    【讨论】:

      【解决方案2】:

      即使行的集合永远不会改变,将其作为数据库中的表来利用 ActiveRecord 关系仍然很有用。一个不太人为的例子是一个包含美国各州列表的数据库表。这极不可能改变,并且可能只有几列(州名和州缩写)。但是,通过将这些存储在数据库中并使用 ActiveRecord 支持它们,您可以保留执行便捷操作的能力,例如使用传统的 Rails 语义搜索处于某个状态的所有用户。

      话虽如此,另一种方法是简单地创建一个类,将其粘贴在不从 ActiveRecord 继承的模型目录中,然后在应用程序加载时从数据库中填充一次,或者简单地手动填充它.

      昨天有人问了一个类似的问题,其中一个答案提出了一种机制来支持类似于你想做的事情:

      How to create a static class that represents what is in the database?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-18
        • 2011-12-26
        相关资源
        最近更新 更多