因此,我已经开发了数据库的前端。控制器具有所有7种标准动作以及更多其他动作。该视图由索引,编辑,新建等组成。现在我需要再做3个,实际上它们之间的唯一不同是一行,因为我正在对某个表进行SQL调用以获取/编辑每个控制器操作的信息,而唯一不同的是表名每个数据库视图。这样做只是将相同的代码复制3次并更改一个变量的一种好方法?
控制器示例:
server = windows_prod
def index
@servers = connection.exec_query("SELECT [COL1]...[COLN] FROM #{server}")
end
其余的操作都遵循这些原则,唯一要做的就是在顶部分配服务器。
考虑将可重用的控制器逻辑放入Mixin。看起来像这样:
module ReusableControllerLogic
def index
@servers = connection.exec_query("SELECT [COL1]...[COLN] FROM #{server}")
end
def show
# Blah
end
end
现在,您可以在定义了名为方法的任何控制器上使用此Mixin server
。此方法应返回所需的服务器名称:
class AwesomeController < ApplicationController
include ReusableControllerLogic
private
def server
"awesome"
end
end
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句