Ruby on rails 关于战略模式在rails中的定位

Ruby on rails 关于战略模式在rails中的定位,ruby-on-rails,ruby,strategy-pattern,Ruby On Rails,Ruby,Strategy Pattern,我正在Rails中实现策略模式,其中我有诸如用户、项目、类别之类的模型,并且需要根据用户在视图中选择的各种算法(策略)向用户推荐项目 我有一个Recommend类,它有一个Recommend接口(user_id,strategy)并返回item_id数组。Recommend中的策略将在运行时根据用户在视图中选择的选项决定。我已将推荐接口放在/lib目录中,将策略放在/lib/strategy目录中 我想确定我是否将文件放在适当的目录中,或者我是否需要将推荐类和所有策略放在模型中或其他任何地方。我

我正在Rails中实现策略模式,其中我有诸如用户、项目、类别之类的模型,并且需要根据用户在视图中选择的各种算法(策略)向用户推荐项目

我有一个Recommend类,它有一个Recommend接口(user_id,strategy)并返回item_id数组。Recommend中的策略将在运行时根据用户在视图中选择的选项决定。我已将推荐接口放在/lib目录中,将策略放在/lib/strategy目录中


我想确定我是否将文件放在适当的目录中,或者我是否需要将推荐类和所有策略放在模型中或其他任何地方。我真的很困惑。

在Rails中,所有特定于域的代码都属于
/app
,而
/lib
是为外部依赖项和共享代码保留的

您可能会发现“服务对象”很有用,它们属于
/app/services
。它们不是
ActiveRecord
类,并且没有数据库,它们通常与其他模型一起工作(执行服务)

你会发现很多关于如何构建服务的信息,例如。还有一个优秀的Railscast(仅限订户)