正确组织服务器端代码?

时间:2014-11-09 18:28:53

标签: ruby-on-rails ruby ruby-on-rails-4

我对rails很新,但我已经制作了一些基本的CRUD应用程序。但是,这一次,我制作了不同的东西,而且我不确定如何组织它。

它本质上是一个单页应用程序。用户填写表单,代码根据这些值进行一些计算。我已经编写了所有代码,但它只是坐在控制器中。我假设这不正确。

分为两部分:

  • 使用外部API,生成2个常量数组。我需要这些变量是全局的,或者至少可以用于计算器函数。

  • 我有一个函数从表单中获取一些也调用其他函数的输入。简化版本如下。如果需要,我可以将所有代码放入一个函数中。我将它们分开,以便代码更具可读性。

    def calc(input) func1(input) func2(input) # do more stuff return answer #I need to show this in the view end

    def func1(a) end

    def func2(b) end

那么,我应该在哪里放置此代码的每一部分?

2 个答案:

答案 0 :(得分:1)

要使控制器变薄,可以将业务逻辑保留在服务对象上。 只需创建"服务"目录在" app",添加一些类似" user_searcher.rb"。 并在控制器中调用它,传递所有必要的数据。

这种技术将帮助您隔离业务逻辑并将其封装在单独的类中。

BTW阅读了这篇文章http://blog.codeclimate.com/blog/2012/10/17/7-ways-to-decompose-fat-activerecord-models/

答案 1 :(得分:0)

我认为,根据我对你的理解,这段代码应该放在帮助器类中。如果您有专门用于此计算的类,则可以使用类属性访问数组以访问类中的任何位置,或者将它们声明为常量,以防它们保持不变。

我不认为将全局变成一个好习惯,只是因为在某些其他函数中需要它,而是返回该变量并将它们作为参数传递给需要的地方。