Rails:我应该如何在控制器之间共享逻辑?

djb*_*djb 3 ruby-on-rails ruby-on-rails-4

这个问题肯定已经被问到了,但我找不到了.

我有一个UsersController和一个Admin::UsersController.显然,这些类中发生的很多事情(例如strong_parameters,创建/编辑用户后的实现路径)都是相同的.

我可以 - 的确,我应该吗? - 在这些控制器之间共享代码?这是关注的问题吗?我在网上找到的例子往往涉及模型.

任何指导非常感谢.

axs*_*uul 12

使用顾虑(放入app/controllers/concerns)

module UsersControllable
  extend ActiveSupport::Concern

  def new
  end

  def create
  end

  private
  def user_params
    # strong params implementation
  end
end

class UsersController < ApplicationController
  include UsersControllable
end

class Admin::UsersController < ApplicationController
  include UsersControllable
end
Run Code Online (Sandbox Code Playgroud)