我的应用程序缓存的网页
在新的#页,当你提交一个URL(不含http://
前缀)页面被创建并您重定向到展会上,像pages/4
其中4是ID
我想补充friendly_id但加入之后我遇到了问题, extend FriendlyId
和friendly_id :url
到我的Page
模式
如果我提供“yahoo.com”,重定向去页/ yahoo.com。 yahoo.com被解释为{"id"=>"yahoo", "format"=>"com"}
和导轨告诉我Couldn't find Page with id=yahoo
如果我提供“yahoo.com/index.html”,重定向去页/ yahoo.com / index.html的,但当时我只是得到No route matches [GET] "/pages/yahoo.com/index.html"
你怎么认为我可以解决这个问题?
在一个轨道路径A期间表示格式(上传.json和.html,的.csv等)。 为了使路线包含一个时期,你需要设置format
在假的路径选择上config/routes.rb
文件。
这个答案是从借来的禁用:.format在Rails3中的路线 。
match '*pages' => 'pages#show', :format => false
或(机智):
constraints :format => // do
resources :pages
end
至于friendly_id ,你执行的迁移,添加:slug
列到Page
模式?
对于你的榜样,friendly_id采取:url
列,使其成为一个友好的URL,然后用正确的更新您的Page实例:slug
值。 我怀疑friendly_id将有可能取代用下划线时期,但我没有验证这一点。
如果你不想使用:slug
列,您已经有了一个:url
列,那么你需要将它定义为这样的:
friendly_id :url, use: [:slugged], slug_column: :url
...具体而言, slug_column
说法。