Rails在区域中的控制器中执行所有操作

时间:2016-01-28 12:57:29

标签: ruby-on-rails ruby ruby-on-rails-3 routes

在我的rails应用程序中,我添加了一个" api"带控制器的区域

在route.rb文件中 我添加区域

namespace :api do
   #get "dashboard/sales_rate"
  end

控制器类:

class Api::DashboardController < Api::ApplicationController
 before_filter :authenticate_user!

  def user_service
    render :json => {"user_id" => current_user.id}
  end

路径是: app/controllers/api/dashboard_controller

我的问题是,如果我可以通过该路线采取所有行动

例如/ api / dashboard / user_service 并且我不会为route.rb页面上的每个路由行添加

/api/{controller_under_api_namespace}/{action}

2 个答案:

答案 0 :(得分:0)

你可以使用一些元编程来填充!

Api.constants.each |c|
  c.action_methods.each do |action|
    get [c.controller_name, action].join('/')
  end
end

此方法仅限于GET请求。您可以使用RESTful路由克服它。

Api.constants.each |c|
  resources c.controller_name.to_sym
end

希望,这有帮助。 :)

答案 1 :(得分:0)

我尝试在route.rb文件中添加代码 enter image description here

我收到了这个错误

enter image description here

这是我的档案 enter image description here

但在尝试修复这部分代码之前,我想知道它是否可以改变性能或对这些页面的调用?

如果表现不佳,我会留下这个选项。