ActionController :: MethodNotAllowed(仅允许获取和发布请求。):

时间:2010-08-01 19:29:59

标签: ruby-on-rails ruby controller action

不确定发生了什么。我已经使用以下代码来尝试编辑类别的名称,但我收到上面的错误消息。我的表单代码和提交编辑的是: -

<% form_for :category, :url => categories_url(@category),:html => { :method => :put } do |f| -%>
<p>Name: <br /><%= f.text_field :name, :size => 60 %></p>
<%= submit_tag 'Save' %> or <%= link_to 'cancel', admin_categories_url%>

非常直接的东西。我的控制器代码是: -   def编辑     @category = Category.find(params [:id])   端

#PUT / categories / 1   #PUT /categories/1.xml   def更新     @category = Category.find(params [:id])     @ category.update_attributes(PARAMS [:类别])

respond_to do |wants|
  wants.html { redirect_to admin_categories_url }
  wants.xml  { render :xml => @category.to_xm }
end  

此代码适用于其他内容 - 例如博客文章,所以我不确定我在哪里出错。帮助??

2 个答案:

答案 0 :(得分:2)

我想你想要:url => category_url(@category)(非复数)。

答案 1 :(得分:2)

这往往更清洁......让路由系统弄清楚如何最好地保存@category。

/app/controllers/admin_categories_controller.rb (猜到了这一点)

def new
  @category = Category.new
end

<强> /app/views/admin_categories/new.html.erb

<% form_for @category do |f| %>
<p>
<%= f.label :name%>: <%= f.text_field :name, :size=>60%>
</p>
<%= f.submit :save%> or <%= link_to 'cancel', admin_categories_url%>