所以我开发了数据库的前端。控制器具有所有7个标准动作+几个。视图由索引,编辑,新建等组成。现在我需要再做3个以上,并且唯一不同的是它们实际上是一行,因为我正在对某个表进行SQL调用以获取/编辑每个控制器操作的信息,唯一不同的是表名称为每个数据库视图。如果不将3次相同的代码复制并更改一个变量,这样做的好方法是什么?
控制器示例:
server = windows_prod
def index
@servers = connection.exec_query("SELECT [COL1]...[COLN] FROM #{server}")
end
其余的操作都沿着这些方向进行,唯一的问题就是顶部的服务器分配。
答案 0 :(得分:0)
考虑将可重用控制器逻辑放入Mixin中。这看起来像是:
module ReusableControllerLogic
def index
@servers = connection.exec_query("SELECT [COL1]...[COLN] FROM #{server}")
end
def show
# Blah
end
end
现在,您可以在任何定义名为server
的方法的Controller上使用此Mixin。此方法应返回所需的服务器名称:
class AwesomeController < ApplicationController
include ReusableControllerLogic
private
def server
"awesome"
end
end