在form_for嵌套路由和自定义路由上的Rails url生成错误

时间:2017-07-01 06:26:31

标签: ruby-on-rails ruby forms url routes

所以我有两个模型bookerbooking_ticket。我已在booking_ticket下嵌套booker的路由,但我还想创建一个没有booking_ticket的新booker,因此我创建了一个自定义路由。当我尝试使用嵌套路径创建而不是在我的自定义路径上创建时,我的操作正常。

my routes.rb

resources :bookers do
 resources :booking_tickets
end
get '/booking_tickets/new', to: 'booking_tickets#new', as: 'new_booking_ticket'

当我使用自定义路径时,这是我从rails获得的错误:

enter image description here

我不明白错误的来源。

1 个答案:

答案 0 :(得分:2)

您需要为create操作创建自定义路由,您当前的自定义资源适用于new操作:

post '/booking_tickets/create', to: 'booking_tickets#create'

或者,由于您似乎使用默认值,只需用以下内容替换当前的自定义路由:

resources :booking_tickets, only: [:new, :create]

请务必在 resources :bookers阻止

之外添加
resources :bookers do
  resources :booking_tickets
end

resources :booking_tickets, only: [:new, :create]