复制Rails代码的最佳方法是什么?

时间:2016-02-12 14:48:21

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

所以我开发了数据库的前端。控制器具有所有7个标准动作+几个。视图由索引,编辑,新建等组成。现在我需要再做3个以上,并且唯一不同的是它们实际上是一行,因为我正在对某个表进行SQL调用以获取/编辑每个控制器操作的信息,唯一不同的是表名称为每个数据库视图。如果不将3次相同的代码复制并更改一个变量,这样做的好方法是什么?

控制器示例:

server = windows_prod

def index
  @servers = connection.exec_query("SELECT [COL1]...[COLN] FROM #{server}")
end

其余的操作都沿着这些方向进行,唯一的问题就是顶部的服务器分配。

1 个答案:

答案 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