我对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
那么,我应该在哪里放置此代码的每一部分?
答案 0 :(得分:1)
要使控制器变薄,可以将业务逻辑保留在服务对象上。 只需创建"服务"目录在" app",添加一些类似" user_searcher.rb"。 并在控制器中调用它,传递所有必要的数据。
这种技术将帮助您隔离业务逻辑并将其封装在单独的类中。
BTW阅读了这篇文章http://blog.codeclimate.com/blog/2012/10/17/7-ways-to-decompose-fat-activerecord-models/
答案 1 :(得分:0)
我认为,根据我对你的理解,这段代码应该放在帮助器类中。如果您有专门用于此计算的类,则可以使用类属性访问数组以访问类中的任何位置,或者将它们声明为常量,以防它们保持不变。
我不认为将全局变成一个好习惯,只是因为在某些其他函数中需要它,而是返回该变量并将它们作为参数传递给需要的地方。