2013-12-20 170 views
0

我是rails新手。在我的演示程序中,我可以在http://localhost:3000/products中顯示我的所有產品列表,每個產品都有顯示,編輯,刪除選項。當我點擊顯示鏈接,我去的具體產品,我得到該產品的網址,如 http://localhost:3000/products/5(即ID後/產品/),但我想兩件事情添加Rails:自定義網址

1)當我點擊在顯示按鈕我的網址應該是這樣的

http://localhost:3000/products/display 

身份證不應該在產品後。只有顯示應該。

2),我想從那裏我可以顯示像http://localhost:3000/products/displayall另一個URL,它是我所有的產品會同時顯示在http://localhost:3000/productshttp://localhost:3000/products/displayall

+0

看起來像你已經雙張貼[這裏](http://stackoverflow.com/questions/20678627/how-to-display-content-of-one-page-to-another-page-in-rails )。這些解決方案您是否有幸運,或者是否回答了_this_問題? – zeantsoi

+0

和'/ products/display'後面的功能是什麼 – devanand

+0

到目前爲止,還有什麼好運氣? – zeantsoi

回答

0

您可以使用它來覆蓋默認的CRUD行爲

resource :products do 
    get ':id/show', :to => :show 
    get ':id/display', :to => :show 
    get 'displayall', :to => :index, :on => :collection 
end 

http://guides.rubyonrails.org/routing.html

正如下面根據2.10.1使用說明的鏈接:上=>:成員增加一個寧靜的鏈接是誰能夠識別/products/:id/display否則下面的例子。

+0

如果你運行'rake routes',你會發現這不會創建OP在問題中引用的收集路線。 – zeantsoi

+0

@zeantsoi錯字。我已經改變了 – devanand

+0

你真的看過路線嗎?您指定的路線_do not_包含第一個添加中引用的路線。 – zeantsoi

0

你列舉了顯示所有產品列表中添加另一個按鈕,編輯和刪除動作,所以你大概是定義足智多謀的路線。如果這是正確的,你就可以定製路由添加到您的Product路線via a collection block

# config/routes.rb 
resources :products do 
    collection do 
    get 'display' 
    get 'displayall' 
    end 
end 

這增加了以下兩個組命名的路線:

  display_products GET /products/display(.:format)        products#display 
     displayall_products GET /products/displayall(.:format)       products#displayall 

這些路由指向products#displayproducts#displayall控制器操作。