【问题标题】:Un-bloating models in rails 3.1Rails 3.1 中的非膨胀模型
【发布时间】:2012-02-24 19:13:57
【问题描述】:

刚刚学习 Rails,开发第一个应用程序,却很难找到这个问题的直接答案!

我想让我的模型尽可能精简,并且真的只想用它们来表示我可能想在我的视图中渲染的对象。因此,我想从一个特定模型中删除一些逻辑并将其存储在一个单独的文件中。我看过许多指南(在本网站和其他网站上),它们提出了以下建议;

  • 从不“要求” Rails 应用程序中的任何内容
  • 在 lib 文件夹中存储其他文件 - 它们曾经在旧版 Rails 中自动加载,但现在您需要在配置文件中添加额外的一行来实现这一点(示例。

所以我添加了行,将文件卡在 lib 文件夹中,一切正常。那么问题来了;

我无法摆脱这样一种感觉,即我必须将一些定制代码放入配置文件中,这意味着我做错了(考虑到配置的约定)。为什么人们不得不花时间编辑配置文件来让 Rails 做一些如此基本的事情?

这是最好的方法,还是有我没有看到的其他注意事项?实际上我应该创建一个“附加”目录而不是仍然在 lib 中粘贴东西吗?

如果有人能指出我关于此事的权威文章的方向,我将非常感激!

【问题讨论】:

    标签: ruby-on-rails conventions


    【解决方案1】:

    在模型文件夹中有非活动记录模型没有任何问题。如果您的域最好由业务逻辑层和持久层建模,那么在您的模型文件夹中使用适当的命名约定对其进行建模。就个人而言,我不会过分关注让它变得完美。尝试一些东西,看看你喜欢它。从错误中吸取教训,不断进步!最重要的是,享受这个过程。

    【讨论】:

      【解决方案2】:

      我所做的是:将模型逻辑保留在模型中,并使控制器尽可能薄

      如果有些东西应该属于您的模型但与它有些距离(例如,您有一个 Account 模型并且您正在开发一些与 Account 相关的支付系统 - 例如您可能想打电话给account.has_subscription?,你可以使用一个名为concerned_with的gem,它将你的模型的主要动作与其他处理付款的动作分开(这只是我最近必须处理的一个例子)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-09-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多