將URL映射到數據庫ID的最有效方式是什麼?Rails 3和乾淨的URL
實施例:
/newspaper/article/how-interesting-is-internet
在路由newspaper_controller
得到article
和how-interesting-is-internet
。
我應該在哪裏以及如何存儲乾淨的URL和ID的映射?
將URL映射到數據庫ID的最有效方式是什麼?Rails 3和乾淨的URL
實施例:
/newspaper/article/how-interesting-is-internet
在路由newspaper_controller
得到article
和how-interesting-is-internet
。
我應該在哪裏以及如何存儲乾淨的URL和ID的映射?
FriendlyId是一個很好的插件(https://github.com/norman/friendly_id)
它允許您指定將用於創建id(名稱或描述或任何)的數據庫列,它負責使所有工作都正常工作。
你應該看看to_param
方法
class Article < AR::Base
def to_param
self.cool_url # cool_url is column in your articles table with your clean url
end
end
所以我的建議是你的clean_url直接存儲在您的ID和其他的東西,你的文章模型
我喜歡friendlyId做法太
我使用CLASIC博客例如
博客控制器處理這種事情的方法{獲取日期的所有帖子}
帖子控制器{}
路線
resource :blog do
resources :posts
end
應用程序/模型/ Post.rb
class Post < ActiveRecord::Base
belongs_to :site
has_friendly_id :title, :use_slug => true
end
然後你結束了一些不錯的路徑
blog_path #Blog Index
blog_post(p) #Post Show
使用to_param方法來創建自定義網址,如http://myblog.com/posts/2012-04-22/123-my-first-post.html
class Post < ActiveRecord::Base
def to_param
"/posts/#{published_at}/{id}-#{title.parameterize}.html"
end
end
爲什麼不使用例如文章標題爲slu??像這樣,只要標題/ slug在表中是唯一的,就不需要任何映射。 – polarblau 2011-03-23 22:04:21