:config / routes.rb中我的根行中的:as属性搞乱了我的应用程序。它出什么问题了?

时间:2011-01-24 09:55:02

标签: ruby-on-rails ruby-on-rails-3 routes

我有一个名为coves_controller的模型和控制器。我现在在routes.rb文件中有这一行:root:to => 'coves #index',:as => '海湾'

当我发表评论并转到localhost:3000 / coves时,一切正常。当我取消注释它时,我无法创建一个新的cove对象..没有错误语句,它只是不添加到数据库。

当我最后将'coves'改为'cove'时,我可以创建新的海湾对象,但在这样做之后我会被送到海湾/ .5这应该是海湾/ 5

2 个答案:

答案 0 :(得分:3)

如果你看how the root path is defined,它只是一种为你创建命名路线的便利方法。用于加载选项的reverse_merge方法意味着您的:as => 'coves'部分哈希将被忽略并更改回:as => :root。使用root方法时,无法重命名根路径。

正如@apneadiving所说,你需要使用resources :coves为它获取RESTful CRUD路由。

答案 1 :(得分:2)

我猜与以下创建的路径存在冲突:

 resources :coves

这是基本的REST行为。

不要为root添加'as'语句,root只是root:)