什么时候适合在Rails应用程序中使用自定义类?

时间:2010-09-05 01:03:19

标签: ruby-on-rails-3

这是一个复杂的问题,有许多可能的答案,所以我将我的情况分解为简单的要点,以帮助缩小解决方案:

我的Rails应用程序具有以下'对象'

  1. 作者
  2. 饲料
  3. 更新
  4. FeedTypes
  5. 对象是如此相关:

    1. 作者可以有一个或多个Feed
    2. Feed可以有一个或多个更新
    3. Feed有一个feedType
    4. 示例设置:

      我的问题和我的问题:

      问题:

      我需要解析上面提到的Feed并将每条推文存储在updates表中。为了解析Feed,我正在考虑编写一个自定义的Feed类,它将由TwitterFeedFacebookFeedTumblrFeed等继承。

      但是,我不确定这是否是解决此类问题的“最佳实践”。

      问题:

      1. 何时开发自定义类以在RoR中执行操作(而不是通过模型或控制器)?
      2. 如果这种情况不需要自定义类,我应该将解析逻辑应用于哪个元素?模型或控制器?
      3. 如果这是自定义类的适当情况,我应该在rails应用程序中存储它(换句话说,什么是正确的'约定')?

2 个答案:

答案 0 :(得分:1)

您可能会不时调用后台任务来检查所有订阅源,获取新更新并将其存储在数据库中。此任务与控制器完全分开,应该可以在没有任何控制器逻辑的情况下调用它。

你的抽象看起来很好。如果多个Feed共享一个共同的XML结构,您还可以使用XmlFeed < Feed之类的内容。

1)控制器应与数据库/模型通信,并将相关数据传递给视图进行渲染。其他所有东西都应该是模型,助手或图书馆。

2)你在问解析逻辑属于哪里吗?在MVC中,我认为这将属于Model和/或helper类,但绝对不是控制器..它不是它的责任。

3)持有数据的类进入app / models。与保存数据无关的类进入lib目录。

答案 1 :(得分:1)

如果合适,请不要回避使用自定义类。如果您需要另一个类,然后添加一个类,您使用rails的事实与该决定无关。