这个问题肯定已被提出,但我找不到。
我有UsersController
和Admin::UsersController
。显然,这些类中发生的很多事情(例如strong_parameters
的实现,创建/编辑用户后要遵循的路径)是相同的。
我可以 - 的确,我应该吗? - 在这些控制器之间共享代码?这是关注的问题吗?我在网上找到的例子往往涉及模型。
非常感谢任何指导。
答案 0 :(得分: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
答案 1 :(得分:0)
一种方法是使用继承。创建一个新的控制器:
class SharedUserController < ApplicationController
# With shared code
end
然后:
class UsersController < SharedUserController
end
class Admin::UsersController < SharedUserController
end
希望这有帮助!