當前我的網址顯示爲www.website.com/entries/1
,我想讓它們顯示爲www.website.com/title-of-entry
。我一直在搞routes
,並且已經能夠獲得entry
標題顯示在URL中,但是Rails在沒有提供ID的情況下找不到entry
。如果我將ID與參數一起發送,則URL顯示爲www.website.com/title-of-entry?=1
。無論如何,我可以通過該ID,而不會出現在URL中作爲參數?謝謝!使URL成爲帖子標題
0
A
回答
1
1
通常你會想將這部分保存在數據庫title-of-entry
(請致電slug
或其他東西)。您的模型可以是這個樣子:
class Entry < ActiveRecord::Base
before_validation :set_slug
def set_slug
self.slug = self.title.parameterize
end
def to_param
self.slug
end
end
現在你生成路線是這樣的:/entries/title-of-entry
來找到你必須改變你的控制器相應的條目:
# instad of this
@entry = Entry.find(params[:id]
# use this
@entry = Entry.find_by_slug(params[:id])
更新
需要記住的幾件事:
您必須確保
slug
是唯一的,否則Entry.find_by_slug(params[:id])
將始終返回與它遇到的slu first的第一個條目。Entry.find_by_slug(params[:id])
不會引起ActiveRecord::RecordNotFound
異常,而只是返回nil
。考慮使用Entry.find_by_slug!(params[:id])
。如果你真的希望你的路線看起來像這樣
/title-of-entry
,你可能會在稍後遇到問題。如果條目slug與另一個控制器的名稱相同,路由器可能會得到意想不到的結果。
相關問題
- 1. 博客帖子URL +帖子標題mailto
- 2. 將帖子標題轉換爲url-firendly
- 3. 帖子標題不會去在url
- 4. http帖子標題
- 5. 長帖子標題
- 6. 請求帖子標題
- 7. WordPress的查詢帖子標題和帖子標籤
- 8. 「模糊」帖子標籤和帖子標題搜索mysql和php
- 9. WordPress的子類別與帖子標題
- 10. 帖子中的主題標題
- 11. WordPress的 - 在前端不同的帖子標題比在url
- 12. wordpress:如何獲得給定url的帖子標題?
- 13. 格式wordpress帖子在URL中使用帖子標題而不是數字自動增量?
- 14. 更新帖子而不更新帖子標題
- 15. 從ACF獲取帖子標題 - 選擇帖子
- 16. 無法在帖子中附加標題和帖子排在android
- 17. 如何將自定義帖子類型字段設置爲帖子標題以避免「自動生成草稿」
- 18. WordPress帖子標題自動添加爲標籤
- 19. 將magento博客帖子標識符自動設置爲標題
- 20. 從數據庫生成標題並顯示相關帖子
- 21. 標題標籤顯示最新帖子標題
- 22. WordPress的帖子標題+後綴
- 23. 限制帖子標題中的字數
- 24. 將帖子內容放入標題
- 25. 授予屬性WordPress的帖子標題
- 26. WordPress自定義帖子標題
- 27. LinkedIn羣組:帖子的鏈接標題?
- 28. 如何將帖子標題居中?
- 29. wordpress :: WP_QUERY不按標題排序帖子
- 30. 如何更新帖子的標題?
非常感謝@Wukerplank的詳細建議,我昨晚在這個地方搞了個鬼混,無法讓事情奏效。我總是會被引導到同一個「入口」,而不管我傳入的是哪個'id'。我確信有更多的時間和黑客入侵,我可以按照您的建議讓事情發揮作用,但爲了不輕鬆處理slu//題目問題,我會去與寶石。你絕對應該得到這個讚賞,但再次感謝! – 2012-08-02 14:12:57