2013-12-19 209 views
0

我是rails新手。我用控制器products_controller.rb創建了一個演示項目,當我輸入這個url http://localhost:3000/products時,我可以看到數據庫中現有產品的列表。但是我需要創建一個名爲「display」的新頁面,並且我的產品應該顯示的網址應該是http://localhost:3000/products/display。我怎樣才能做到這一點?如何顯示一個頁面的內容到另一個頁面的內容

回答

0

你可能尋找Rails的RESTful routing structure

每次你在你的routes文件中使用resources :controller時間,它創建7 routes for that controller

  • 指數
  • 創建
  • 編輯
  • 更新
  • 顯示
  • 銷燬

對我來說,似乎你試圖使用show方法:


顯示

Rails的show方法基本上顯示在頁面上特定的對象,像這樣:

/products/234 

這顯示自身

你的代碼這個問題的方法的產品是非常簡單的:

#app/controllers/products_controller.rb 
def show 
    @product = Product.find(params[:id]) 
end 

您可以通過以下鏈接與URL helper

<%= link_to "View", products_path(product.id) %> 

這將允許你展示你點擊的產品

1

如果你想使用一個輔助作用,而不只是一個不同的路徑索引操作,你需要收集自定義操作:

在你的routes.rb

resources :products do 
    collection do 
    get :display 
    end 
end 

然後在您products_controller.rb

class ProductsController 
    def display 
    @products = Product.all 
    end 
end 

,然後創建一個display.html.erb/HAML/...在你的應用程序/視圖/產品目錄並填寫任何你想要的:-)

如果您只是想要一個到索引操作的不同路徑,您可以添加一個自定義路徑。路由指南解釋這更好然後我可以,所以我只是鏈接到它:http://guides.rubyonrails.org/routing.html

1

我想你只想爲產品的索引頁面定製一個url。

可以實現在以下way-

在你的routes.rb

get "/products/display" => "products#index" 
resources :products 

只記得把你的資源自定義路由條目下。

我希望這可以幫助你!

相關問題