Rails 4 路由错误 '没有路由匹配 [GET] "/project"

Rails 4 routing error 'No route matches [GET] "/project"

我将我的 rails 项目移动到另一台计算机,但出现此错误:

No route matches [GET] "/project"

Rails.root: /home/user/project

我已经尝试了所有方法,但仍然无效。

我的routes.rb如下:

Rails.application.routes.draw do

  resources :orders
  get 'product_statuses/list'

  resources :customers do
    resources :shipping_addresses
  end

  resources :products do
    resources :product_details do
      resources :product_statuses
    end
    resources :prices
  end

  get 'welcome/index'

end

我真的需要帮助:(拜托了。

谢谢!

如果您尝试查看特定产品,/product 不是可行的路径,因为无法识别它。给定一个 id 为 1 的产品,您定义的路线如下所示:

/products/1
/products/1/edit

您可以通过在资源上提供空白路径来摆脱 /products/ 段,尽管在占用根命名空间时需要注意以下事项:

resources :products, path: '' do
  ...
end

这将为您提供如下路线:

/1
/1/edit

如果您对 url 中显示的 ID 不满意,您可以像这样手动编写新路由(假设产品具有名称属性):

get '/:name', to: 'products#show'

请注意,除非您在名称属性上强制执行唯一性,否则这将不起作用。

另一个选项是可以覆盖显示的参数并使用您已有的路由:

class Product

  def to_param
    name.parameterize
  end

  ...
end

这将为您提供如下路线:

/products/foo
/products/darth-vader-marshmallows

您值得花时间在此处查看 Rails 路由文档:http://guides.rubyonrails.org/routing.html