1
这里是我的设置:的Rails:未初始化的常数控制器
路线:
resources :apps, except: [:index, :new], path: 'a' do
resources :platforms, only: [:update]
end
控制器:
class Apps::PlatformsController < ApplicationController
before_action :authenticate_user!
before_action :set_platform
# PATCH/PUT /apps/1/platforms/1
# PATCH/PUT /apps/1/platforms/1.json
def update
# do stuff ...
end
private
# Use callbacks to share common setup or constraints between actions.
def set_platform
@platform = App::Platform.find params[:id]
end
end
查看:
= link_to 'Update', app_platform_url(platform.app.slug, platform.id), method: :put
当点击该链接,我得到以下错误:
uninitialized constant PlatformsController
为什么Rails的寻找PlatformsController
而不是Apps::PlatformsController
?
你知道比namespacing每个嵌套路由更好的解决方案吗?因为这是创造丑陋的网址助手,如'app_apps_platform_url'。 – jonhue
您可以使用命令空间阻止所有路由 – Ursus
或者如果路由名称是问题,则使用as选项重命名路由 – Ursus