例如,我有自定义的CRUD路径-用于配置文件。
get '/profiles', to: 'profiles#index'
get '/profiles/new', to: 'profiles#new', :as => 'new_profile'
post '/profiles', to: 'profiles#create'
get '/profiles/edit/:id', to: 'profiles#edit', :as => 'profile'
patch '/profiles/edit/:id', to: 'profiles#update'
get '/profiles/get_profiles', to: 'profiles#get_profiles'它可以正常工作。但是我在配置文件技巧上做了同样的路由,在profile的关系下。ProfileSkills的路径如下
get '/profiles/:profile_id/profile_skills', to: 'profile_skills#index'
get '/profiles/:profile_id/profile_skills/new', to: 'profile_skills#new', :as => 'new_profile_skill'
post '/profiles/:profile_id/profile_skills', to: 'profile_skills#create'
get '/profiles/:profile_id/profile_skills//edit/:id', to: 'profile_skills#edit', :as => 'profile_skills'
patch '/profiles/:profile_id/profile_skills/edit/:id', to: 'profiles#update'当我在创建新项目的路由下
http://localhost:3000/profiles/1/profile_skills/new它抛出一个异常
No route matches {:action=>"edit", :controller=>"profile_skills", :profile_id=>"1"}, missing required keys: [:id]关于线的形式
<%= form_for @profile_skill do |form| %>为什么他不明白我在“新”路线下,它在寻找“编辑”,而我在“新”下?这个问题只有在我分路线的时候才会出现。例如,在“Porfile”路由中,如果工作正常。
发布于 2017-09-01 11:18:17
在你的路线上用这个
resources :profiles do
resources :profile_skills
end这将为你提供这样的路线。
profiles/:profile_id/profile_skill指向profile_skill的index作用,profiles/:profile_id/profile_skill/new指向profile_skill的new作用,profiles/:profile_id/profile_skill/:profile_skill_id指向show作用profile_skill profiles/:profile_id/profile_skill/:profile_skill_id/edit指向profile_skill的edit作用
诸若此类。
要获得更多帮助,请访问Rails路由
https://stackoverflow.com/questions/45998817
复制相似问题