我的PointPage
模型中包含url
字段。我需要在网站上将point_page#show
的链接格式化为:
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
方法会生成第二种类型的网址,而不是第一种网址:
link_to 'Link', point_page_path(page) #=> <a href="/point_pages/url">Link</a>
我需要<a href="/url">Link</a>
感谢您的帮助!
答案 0 :(得分:2)
在路线定义中添加as
选项:
get ':url', to: 'point_pages#show', as: 'url'
这将创建一个url_path
路线助手:
link_to 'Link', url_path(page)