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

时间:2015-11-25 22:55:18

标签: ruby-on-rails ruby routing routes

我将我的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

我真的需要帮助:(请。

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您正在尝试查看特定产品,/产品不是可行的路线,因为无法识别它。给定id为1的产品,您定义的路由的工作方式如下:

/products/1
/products/1/edit

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

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

这将为您提供如下路线:

/1
/1/edit

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

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

请注意,除非您在name属性上强制执行唯一性,否则这将无效。

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

class Product

  def to_param
    name.parameterize
  end

  ...
end

这将为您提供如下路线:

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

在此处查看Rails路由文档是值得的:http://guides.rubyonrails.org/routing.html