Rails:为表的每一行创建路由路径

时间:2014-04-04 11:36:27

标签: ruby-on-rails routes

我有一个名为Partners的表,其中有一个名为Partner Name的列。我想为每个合作伙伴创建一个类似于以下内容的网址:www.url.com/partner/PartnerName

现在我一直试图在我的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路由到页面,只有当该特定的合作伙伴名称存在时。但这是我只能在控制器中执行的检查,此时页面已经呈现。我如何解决上述问题?

1 个答案:

答案 0 :(得分: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 %>