我有一个服务,为内部使用的外部API提供通信,但我需要添加一个控制器来显示这些数据,这些是我的文件:
app/
controllers/
blog/
posts_controller.rb
services/
blog.rb
blog/
posts.rb
问题是,如果我为 post 资源添加路由,则路由将被绘制到services目录中的 blog.rb 文件,而不是控制器命名空间博客以下是我尝试过的路线:
namespace :blog do
resources :posts, controller: 'posts'
end
namespace :blog, path :blog do
resources :posts
end
namespace :blog do
resources :posts, controller: 'blog/posts'
end
我得到的错误总是一样的:
Unable to autoload constant Blog, expected /app/services/blog.rb to define it
我的问题是,有没有办法在路线中指定哪里可以找到控制器,而不是依赖于惯例。
以下是类定义:
#posts_controller.rb
class Blog::PostsController < ApplicationController
...
end
#services/blog/posts.rb
module Blog
class Posts
...
end
end
#services/blog.rb
module Blog
...
end