Ruby on rails 在rails 3中自动生成路径?

Ruby on rails 在rails 3中自动生成路径?,ruby-on-rails,ruby-on-rails-3,forms,routes,Ruby On Rails,Ruby On Rails 3,Forms,Routes,从一些railscasts()的外观来看,似乎有一些“*\u path”变量的自动生成对我来说没有发生。在这个rails cast中,edit_mutliple_products_路径似乎是自动生成的(我通常不喜欢使用这个词)。当我按照相同的步骤并尝试访问类似的路径时,我得到以下结果: undefined local variable or method `edit_multiple_distributions_workflows_path' for #<#<Class:0x132b

从一些railscasts()的外观来看,似乎有一些“*\u path”变量的自动生成对我来说没有发生。在这个rails cast中,edit_mutliple_products_路径似乎是自动生成的(我通常不喜欢使用这个词)。当我按照相同的步骤并尝试访问类似的路径时,我得到以下结果:

undefined local variable or method `edit_multiple_distributions_workflows_path' for #<#<Class:0x132b18a68>:0x132af3290>
未定义的局部变量或方法“编辑\u多个\u分布\u工作流\u路径”#

在给定的教程中,它看起来像来自较旧的Rails,这是生成路径方法的行:

map.resources :products, :collection => { :edit_multiple => :post, :update_multiple => :put }

在rails 3中,您可以在这里的文档中看到它的用法:

这是rails 2.X。Rails路线在Rails 3中更改。要获取此路由,请将以下内容添加到routes.rb:


resources :products do
  collection do
    post 'edit_multiple'
    put  'update_multiple'
  end
end
您将能够使用访问此路径

edit_multiple_products_url
edit_multiple_products_path
update_multiple_products_url
update_multiple_products_path

而不是
编辑\u多个分布\u工作流\u路径
。顺便问一下,你是从哪里得到这条路径的?我没有在railscast中看到它。

列表中的“rake routes”是否显示了您的路径?我可以使用更高级别的路由。但是谢谢你的指导。这很有帮助。是的,“分发工作流程”来自我自己的项目。感谢您的帮助。另外,请您简要解释一下
*\u url
*\u path
之间的区别。假设您是www.amazon.com产品,而产品返回www.amazon.com/products。基本上*\u url返回以主机和端口(如果有)为前缀的路径,而*\u path只返回路径。