代码之家  ›  专栏  ›  技术社区  ›  NullVoxPopuli

Ruby on Rails:只允许get、put和delete

  •  0
  • NullVoxPopuli  · 技术社区  · 15 年前

    我的观点:

    <h1>New Address</h1>
    
    <% form_for @address, :url => new_address_path do |f| %>
      <%= f.error_messages %>
      <%= render :partial => "form", :object => f %>
      <%= f.submit "Add Address" %>
    <% end %>
    

    部分。。。没什么特别的

    <%= form.label :number %><br />
    <%= form.text_field :number %><br />
    <br />
    <%= form.label :street %><br />
    <%= form.text_field :street %><br />
    <br />
    <%= form.label :city %><br />
    <%= form.text_field :city %><br />
    <br />
    <%= form.label :state %><br />
    <%= form.text_field :state %><br />
    <br />
    <%= form.label :zip_code %><br />
    <%= form.text_field :zip_code %><br />
    <br />
    <br />
    

    我的错误:

    ActionController::MethodNotAllowed
    
    Only get, put, and delete requests are allowed.
    
    1 回复  |  直到 15 年前
        1
  •  1
  •   GreyCat    15 年前

    MethodNotAllowed 似乎来自基于资源的路由。基于资源的路由需要不同的方法名来匹配操作。在你的情况下,你应该提供 :method => :post 在里面 form_for ,类似于:

    <% form_for @address, new_address_path, :method => :post) do |f| -%>