在 Ruby on Rails 中,重用控制器之间的代码可以通过以下几种方法实现:
在 Rails 中,可以使用模块来存放共享的代码。例如,可以创建一个名为 concerns
的目录,并在其中创建一个模块,如 shared_controller.rb
。
module SharedController
extend ActiveSupport::Concern
included do
# 在这里添加共享的代码
end
end
然后,在需要使用共享代码的控制器中,引入该模块:
class SomeController< ApplicationController
include SharedController
# 其他代码
end
可以创建一个基础控制器,然后让其他控制器继承该基础控制器。
class BaseController< ApplicationController
# 在这里添加共享的代码
end
然后,在需要使用共享代码的控制器中,继承基础控制器:
class SomeController< BaseController
# 其他代码
end
可以在控制器中定义宏,然后在其他控制器中调用这些宏。
class SomeController< ApplicationController
def self.shared_method
# 在这里添加共享的代码
end
end
然后,在需要使用共享代码的控制器中,调用该宏:
class AnotherController< ApplicationController
include SomeController::shared_method
# 其他代码
end
可以创建一个服务对象,将共享的代码封装在该对象中。
class SharedService
def initialize(params)
# 在这里添加共享的代码
end
end
然后,在需要使用共享代码的控制器中,调用该服务对象:
class SomeController< ApplicationController
def some_action
SharedService.new(params)
# 其他代码
end
end
推荐的腾讯云相关产品:
产品介绍链接地址:腾讯云官方网站
领取专属 10元无门槛券
手把手带您无忧上云