rails

时间:2017-01-27 14:46:09

标签: ruby-on-rails ruby routing

我有一个服务,为内部使用的外部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

0 个答案:

没有答案