冗余 Rails 路由

Redundant Rails Routes

为什么我的 <%= form_for charges_path %> returns 使用这些路由访问 /product/:product 时出现未定义的局部变量 :

  get 'product/:product'      => 'charges#new'
  post 'product/:product'     => 'charges#create'

但是当我添加这些时有效吗?

  resources :charges, :only => [:new, :create]

我想清理一下

当您使用 getpost 方法时,您不会创建路径助手,即。除非您提供带有 :as 选项的字符串,否则没有 charges_path 方法。

所以如果没有 charges_path 方法,ruby 认为它是一个变量的名称,所以你会得到你得到的错误。