Rails5如何编写路由



如何在Rails 5中编写路由,以便当用户访问

http:www.mysite.com/volunteer_events/add_shift

它会触发自愿者事件控制器中的add_shift方法

我花了几个小时盯着路由页面在这里…https://guides.rubyonrails.org/v5.0.7/routing.html…它变成了一堵巨大的文字墙。

这是我目前拥有的…

get '/volunteer_events/add_shift', to: 'volunteer_events#add_shift'

但是我得到一个错误

Couldn't find VolunteerEvent with 'id'=add_shift
我知道这很简单…我只是很累,我不记得了。

您的route.rb文件的其余部分看起来如何?

从上到下解释路由,定义越高的路由优先级越高。我的假设是,你在路由

中有这样的东西
resources :volunteer_events
get '/volunteer_events/add_shift', to: 'volunteer_events#add_shift'

可以翻译成这样

get '/volunteer_events/:id', to: 'volunteer_events#show'
get '/volunteer_events/add_shift', to: 'volunteer_events#add_shift'

现在您的第一条路由始终优先于第二条路由,并且add_shift将始终被解释为show路由的id(注意显示路由中的:id是一个参数)。只要翻转这两个,这样/volunteer_events/add_shift就会在你的显示路径之前匹配,你应该很好。

相关内容

  • 没有找到相关文章

最新更新