簡體   English   中英

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 不滿意,您可以手動編寫這樣的新路由(假設產品具有 name 屬性):

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM