在控制器中制作部分内容

时间:2016-07-07 09:35:54

标签: ruby-on-rails

我在rails应用程序上构建ruby并且我有相当大的控制器。

现在我在创建动作和删除动作上都要做同样的动作,所以如果有可能让这个干,我就会徘徊。或者只有观点可以吗?

3 个答案:

答案 0 :(得分:1)

有几种方法可以实现这一目标:

  1. 将所有与模型相关的代码移动到模型中,并在控制器中的模型上调用模型操作。这是一种清理控制器的好方法,尤其是在查询模型的常规事物时。
  2. 在控制器中创建私有操作以减少重复代码。
  3. 您可以在模块内创建方法并将模块导入控制器。这应该会减小控制器的大小并使其变干(您甚至可以在不同的控制器中重复使用该模块)。

    module MyModule
        def my_method
        end
    end
    
    # in controller
    include MyModule
    

答案 1 :(得分:0)

您只能在视图中创建局部视图。 控制器中的代码重复可以通过将类似的代码部分编写为模型中的方法并在控制器中调用多个操作来实现DRY。

答案 2 :(得分:0)

rails4中有一个名为concern的文件夹,您可以使用concern在控制器中拆分代码。

您可以参考:concern