Rails `form_with` 当有 `has_one` 关联时
Rails `form_with` when having a `has_one` association
Rails 假定我的 has_one
联想是复数。请看看我的代码片段:
我的模型:
class Order < ApplicationRecord
has_one :order_detail
end
我的routes.rb
:
resources :orders do
resource :order_detail
end
我的views/order_details/new.rb
:
...
<%= form_with(model: [@order, @order_detail]) do |form| %>
...
<% end %>
导航至 localhost:3000/orders/1/order_detail/new
。我得到的错误是:
undefined method `order_order_details_path' for #<#<Class:0x00007ff9be1b66a0>:0x00007ff9be1b4cd8>
Did you mean? order_order_detail_path
order_order_detail_url
我知道路由的计算结果应该是 order_order_detail_path
,但数组显然不会这样做。
如何解决这个问题?
我最终通过将 :order_details
设为复数来解决了这个问题。
resources :orders do
resource :order_details
end
has_one
关联仍将在控制器和参数中起作用。
Rails 假定我的 has_one
联想是复数。请看看我的代码片段:
我的模型:
class Order < ApplicationRecord
has_one :order_detail
end
我的routes.rb
:
resources :orders do
resource :order_detail
end
我的views/order_details/new.rb
:
...
<%= form_with(model: [@order, @order_detail]) do |form| %>
...
<% end %>
导航至 localhost:3000/orders/1/order_detail/new
。我得到的错误是:
undefined method `order_order_details_path' for #<#<Class:0x00007ff9be1b66a0>:0x00007ff9be1b4cd8>
Did you mean? order_order_detail_path
order_order_detail_url
我知道路由的计算结果应该是 order_order_detail_path
,但数组显然不会这样做。
如何解决这个问题?
我最终通过将 :order_details
设为复数来解决了这个问题。
resources :orders do
resource :order_details
end
has_one
关联仍将在控制器和参数中起作用。