2014-04-04 55 views
1

我有一個名爲Partners的表,其中有一個名爲Partner Name的列。我想爲每個合作伙伴創建一個如下所示的網址:www.url.com/partner/PartnerNameRails:爲表中的每一行創建路由路徑

現在,我一直在試圖做這樣的事情在我routes.rb

get '/partner/:partner_name', to: 'pages#partner_page' 

而在我的控制,我做

logger.info params[:partner_name] 

這始終是零。事情是我知道這適用於id,因爲我以前做過。如果它是

get '/partner/:id', to: 'pages#partner_page' 

我知道logger.info params[:id]會工作。但在這種情況下,事實並非如此。

除了這個問題,我希望URL被路由到頁面,只要該特定的夥伴名稱存在。但是,這是一個我只能在控制器中執行的檢查,此時頁面已經被渲染。我如何解決上述問題?

+0

你的鏈接代碼是什麼?你如何發送從鏈接到控制器的partner_name參數?你的鏈接應該是這樣的:'link_to'action',some_path(partner_name:'partnername')' – rmagnum2002

+0

Ahhh。我沒有這個鏈接代碼。老實說,我不熟悉它是如何工作的。感謝這個提示! – geekchic

+0

您需要將parter_name從您的link_to helper發送到您的控制器 – LHH

回答

0

的routes.rb

get '/partner/:partner_name', to: 'pages#partner_page', as: :partner_page

這會給你提供partner_page_path路線。

html.erb

link_to partner.name, partner_page_path(partner_name: partner.name)


控制器

@partners = Partner.all 

html.erb

<% @partners.each do |partner|%> 
    <%= link_to partner.name, partner_page_path(partner_name: partner.name) %> 
<% end %> 
+0

我無法訪問我的html.erb文件中的partner.name。我看到一個未定義的局部變量或方法「夥伴」錯誤。我敢肯定,我在這裏錯過了一些東西..我如何使html.erb中的partner.name可用?我可以在控制器中執行@partner嗎? – geekchic

+0

partner.name只是一個例子,你必須使用你的合作伙伴的數據庫屬性,可能是標題,名字,姓氏,無論 – rmagnum2002

+0

是的,我得到了那部分。只是想知道如何訪問合作伙伴對象本身。猜猜我必須在控制器中做到這一點。 – geekchic

相關問題