导轨和路径选项
问题描述:
路由请看下面的例子:导轨和路径选项
devise_for :users, path: ':school_id/', controllers: {
sessions: 'users/sessions',
confirmations: 'users/confirmations',
registrations: 'users/registrations',
passwords: 'users/passwords',
}
devise_scope :user do
get "sign_out" => 'users/sessions#destroy', as: :sign_out
post "add_lectures" => 'users#add_lectures', as: :user_add_lectures
end
当我做一个Ajax请求/add_lectures
Rails的认为我试图访问/:school_id/users/..
因为path
选项供用户路线。换句话说,Rails认为add_lectures
是参数school_id
的一种形式。
如何解决此问题?
答
如果这是你的路由文件,你不需要在devise_scope下面添加它。尝试添加示波器,如routes.rb中的通用路由,例如
post "add_lectures" => 'users#add_lectures', as: :user_add_lectures
条目中的路由文件