ActionController的:: MethodNotAllowed

时间:2010-04-29 20:13:26

标签: ruby-on-rails routes

我有一个名为'audioclip'的导轨模型。我创建了一个带有'new'动作的脚手架,我将其替换为'new_record'和'new_upload',因为有两种方法可以将音频附加到此模型。

转到/ audioclips / new_record不起作用,因为它将'new_record'视为id。我没有改变这一点,而是试图创建'/ record_clip'和'/ upload_clip'路径。

所以在我的routes.db中我有:

map.record_clip '/record_clip', :controller => 'audioclips', :action => 'new_record'
map.upload_clip '/upload_clip', :controller => 'audioclips', :action => 'new_upload'

当我导航到/ record_clip时,我得到了

ActionController::MethodNotAllowed
Only get, head, post, put, and delete requests are allowed.

我对路由的内部工作方式还不是很熟悉。这里有什么问题? (如果有帮助,我有上面的这两个语句 map.resources =>:audioclips

1 个答案:

答案 0 :(得分:1)

是的,您的两条路线与您的映射资源(map.resources => :audioclips位)冲突。

如果您想继续使用资源,我建议您将该行更改为:

map.resources => :audioclips,
                 :new => { 
                    :new_record_clip => :post,
                    :new_upload_clip => :post }

如果您想了解更多信息,Rails指南对此主题非常有帮助:

http://guides.rubyonrails.org/routing.html#adding-more-restful-actions