这个问题似乎有些基本,但考虑到我的'pages#show'带有url'history'的显示页面。如何将此特定节目页面添加到链接:
= link_to 'History', pages_path(@?????)
PD1:我希望避免使用:id
,因为我倾向于播放大量数据,并且每db:seed
所有ID都会发生变化。
PD2:我知道我可以创建一个动作,然后在router.rb上设置它。但在很长一段时间里,消耗的时间很长。
答案 0 :(得分:1)
rails generate migration AddPermalinkToPages permalink:string
添加后,您需要在保存页面或更新页面时动态创建永久链接。我通常在模型中这样做,所以我保持控制器清洁。如果您希望用户分配永久链接并在视图中调用,则可以在PagesHelper中定义它。这实际上取决于您希望如何与用户进行互动。
无论如何,(如果你想在模型中定义它)
def self.make_slug(aString)
aString.downcase.gsub(/[^a-z1-9]+/, '-').chomp('-')
end
在你的page.rb
中 def to_param
permalink
end
在你的pages_controller.rb中(如果你需要) - 这里的id将是永久链接,所以你的用户将是这样的/ history / a-page-slug
private
## Use callbacks to share common setup or constraints between actions.
def set_page
@page = Page.find_by_permalink(params[:id])
end
不需要对你的路线做任何事情。
如果您需要更多帮助,请与我们联系。
干杯