2015-12-10 40 views
1

我有一個控制器Path變量,我們只是把它FruitsController,,抓住所有的水果,並將其發送到索引視圖。在該視圖中,我想顯示這些水果的單個頁面的鏈接。我使用的格式:Ruby on Rails的 - 不使用資源的途徑

<% @fruits.each do |fruit| %> 
    <%= link_to fruit.name, fruit_path(fruit) %>  
<% end %> 

來完成這項工程時,我有路線resources :fruits,但我不想要刪除,保存和更新路線,所以我不希望使用resources。但是,當我只是做個別路線顯示所有與個人的水果,我得到的錯誤fruit_path功能沒有定義,當我使用的功能fruits_path它的工作原理,但它只是一個附加期間的道路一樣/fruits.1。如何在不使用資源的情況下使用fruit_path函數?謝謝。

回答

6

有很多的,你可以做到這一點的方法;在config/routes.rb,以下任一應該工作:

resources :fruits, only: :show 

resources :fruits, except: [:index, :edit, :destroy, :update] # etc 

get 'fruits/:id', to: 'fruits#show', as: :fruit 

scope controller: :fruits do 
    get 'fruits/:id' => :show, as: :fruit 
end 
1

你不僅限於資源,你可以自定義和創建自己的路線,例如:

得到「/:用戶名/照片」,爲:‘用戶#節目’,如:‘拼貼’
到:一裝置,控制器/動作,在這種情況下,用戶是在控制器和顯示是動作。
爲:對你自己collage_path「

創建一個路徑,你可以找到關於路由=>http://guides.rubyonrails.org/routing.html

好的信息