我正在使用rails 5
我有一个名为价格的型号。 (has_many 产品)
价格的型号名为产品(belongs_to 价格)
在这种情况下,我可以创建新的产品,也可以销毁产品。 但我无法编辑产品。
我的路线
resources :prices do
resources :products
end
在我的价格表中
<%= link_to "Edit", edit_price_product_path(product.price, product) %>
在我的产品编辑中
<%= form_for @product, :url => {:action => :edit}, :method => :post do |f| %>
<%= f.text_field :name, placeholder: 'Name' %>
<%= f.submit %>
<% end %>
在我的产品控制器中
def edit
end
def update
product.update(product_params)
if @product.update(product_params)
redirect_to price_path(@price)
else
render 'edit'
end
end
我的佣金路线
price_products GET /prices/:price_id/products(.:format) products#index
POST /prices/:price_id/products(.:format) products#create
new_price_product GET /prices/:price_id/products/new(.:format) products#new
edit_price_product GET /prices/:price_id/products/:id/edit(.:format) products#edit
price_product GET /prices/:price_id/products/:id(.:format) products#show
PATCH /prices/:price_id/products/:id(.:format) products#update
PUT /prices/:price_id/products/:id(.:format) products#update
DELETE /prices/:price_id/products/:id(.:format) products#destroy
问题是
当我点击提交按钮时,我收到此错误
No route matches [POST] "/price/price_id/product/product_id/edit"
感谢您的帮助
答案 0 :(得分:0)
您可以使用namespaced syntax来处理嵌套资源:
<%= form_for [:price, @product] do |f| %>
<%= f.text_field :name, placeholder: 'Name' %>
<%= f.submit %>
<% end %>