Ruby on rails 向控制器添加问题会导致AbstractController::ActionNotFound

Ruby on rails 向控制器添加问题会导致AbstractController::ActionNotFound,ruby-on-rails,activesupport,Ruby On Rails,Activesupport,我在几个控制器中使用了相同的set\u modpack方法,我决定关注它。但是当我向控制器添加关注点时,所有路由都会给我AbstractController::ActionNotFound错误 我的路线: 关注点:可注释的do 参考资料:评论,浅显:正确 结束 参考资料:modpacks,concerns::commentable do 资源:发布,控制器:'modpack_发布' 结束 我关注的是: #app/controllers/concerns/modpack#u derivative

我在几个控制器中使用了相同的
set\u modpack
方法,我决定关注它。但是当我向控制器添加关注点时,所有路由都会给我
AbstractController::ActionNotFound
错误

我的路线:

关注点:可注释的do
参考资料:评论,浅显:正确
结束
参考资料:modpacks,concerns::commentable do
资源:发布,控制器:'modpack_发布'
结束
我关注的是:

#app/controllers/concerns/modpack#u derivative.rb
ModpackDerivative模块
扩展ActiveSupport::关注点
受保护的
def set_modpack
@modpack=modpack.find(参数[:id])
如果@modpack.nil?
@modpack=modpack.find_by!(slug:params[:id])
结束
结束
结束
我的控制器:

#app/controllers/modpacks_controllers.rb
类ModpacksController

如果我删除关注点并将
set\u modpack
方法粘贴到控制器中,效果很好。

您可以添加文件名吗?Rails是这样的,所以文件名可能会有所不同。不确定,但是set_modpack方法是否应该是公共的?我的文件名是controllers/modpack_controller和controllers/concerns/modpack_derivativemetried,使其公开,没有区别如果您将before操作移动到包含do块内的模块中会怎么样?您可以添加文件名吗?Rails是这样的,所以文件名可能会有所不同。不确定,但是set_modpack方法是否应该是公共的?我的文件名是controllers/modpack_controller和controllers/concerns/modpack_derivativemetried。如果将before操作移动到包含的do块内的模块中,会怎么样?