首先,我是Rails的新手所以请原谅我这是一个蹩脚的新手问题
我正在使用导轨belongs_to :shop
创建特价(form_tag
)
在我的admin / specials / new.html.erb中,表单如下所示:
<%= form_tag new_admin_shop_special_path(@current_shop) do |f| %>
<input type = "number" name = "product_ids" />
<% end %>
(路径new_admin_shop_special_path
绝对确实存在)
在rake路线我有:
POST /admin/shops/:shop_id/specials(.:format) admin/specials#create
new_admin_shop_special GET /admin/shops/:shop_id/specials/new(.:format) admin/specials#new
我的admin / specials_controller.rb有:
def new
end
def create
special = @current_shop.specials.build
special.add_products(params[:product_ids])
redirect_to admin_shop_shipping_options_path, notice: "#{special.id}"
end
(通知是为了调试)
所以,问题是,如果我提交表单,我会收到错误说
路由错误
没有路线匹配[POST]“/ admin / shops / dear-rae / specials / new”
帮助
答案 0 :(得分:0)
假设您使用资源,这应该有效:
<%= form_tag admin_shop_specials_path(@current_shop) do |f| %>
是的,最后new
的路径确实存在,但只有GET
方法。提交表单时,使用POST
方法,该方法不适用于此路由。