Rails路由错误与form_tag

时间:2014-01-23 09:46:58

标签: ruby-on-rails ruby ruby-on-rails-3 forms routing

首先,我是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”


帮助

1 个答案:

答案 0 :(得分:0)

假设您使用资源,这应该有效:

<%= form_tag admin_shop_specials_path(@current_shop) do |f| %>

是的,最后new的路径确实存在,但只有GET方法。提交表单时,使用POST方法,该方法不适用于此路由。