2014-08-13 2 views
0

У меня есть PointPage модель с url поле в нем. Мне нужно форматировать ссылки на point_page#show на сайте в:Friendly URL в link_to

domain.com/:url 

Итак, я добавить к routes.rb

get ':url', to: 'point_pages#show' 

И point_page.rb

def to_param 
    url 
end 

show методом в point_page_controller.rb является:

def show 
    @point_page = PointPage.find_by(url: params[:url]) 
end 

Итак, все работает, и domain.com/:url == domain.com/point_pages/:url

Но link_to метод в представлениях генерировать URLs второго типа, не первый:

link_to 'Link', point_page_path(page) #=> <a href="/point_pages/url">Link</a> 

И мне нужно <a href="/url">Link</a>

Спасибо за помощь!

ответ

2

Добавить as возможности определения маршрута:

get ':url', to: 'point_pages#show', as: 'url' 

Это создаст помощник url_path маршрута:

link_to 'Link', url_path(page)