我有一个太大的rails控制器文件(~900行 - api_controller)。我想把它拆分成这样的东西:
api_controller.rb
api_controller_item_admin.rb
api_controller_web.rb
我不想分成多个控制器。这样做的首选方法是什么?我可以在最后要求新部件吗?像:
require './api_controller_item_admin'
require './api_controller_web'
答案 0 :(得分:0)
您始终可以重构您认为不属于一个控制器的功能,以将lib
目录中的某个文件分开。然后,您可以自动生成这些文件,并且您可以在应用程序的任何位置随意使用它们的所有功能。方法如下:
# in [config/application.rb]
config.autoload_paths += %W(#{config.root}/lib)
我的建议:不要考虑将一个巨大的控制器分成更小的块,而是要折磨你的大脑,并强迫它将这个问题视为提取不属于你的控制器的功能,而不是其他文件。