在我的應用程序,我需要爲我的所有用戶都喜歡個性化網址動態路由: PROFILENAME/joinme,其中配置文件名稱將是獨一無二的。 有一個問題,如果配置文件名是一樣,如果一個已經存在的路線: PROFILE_NAME =用戶,那麼路徑將是用戶/ joinme並且已經有一個名爲用戶的資源。 所以我想檢查一下這些虛榮URL的創建,他們不會干擾我現有的路線。 有沒有簡單的方法來做到這一點? 一個,我能想到的辦法是讓「回扣路線」的格式輸出文件,然後爲上創造的每路線的生存確認。,如何檢查是否路由已經存在而產生的軌道
0
A
回答
1
代替生成動態路由,可以在路由使用動態段。
例如:
match ":username/joinme", :to => "users#joinme"
然後,你可以自定義控制器的行爲,只要你想。
對於參考: Rails Routes - Dynamic Segments
另外,如果你想控制創建新用戶,禁止那些在衝突與現有的路線名稱的使用過程中,你可以使用的方法描述在this answer。
3
您應該創建的屏蔽詞列表,並檢查用戶名不符合任何使用驗證這句話。一個簡單的方法可以是:
validate :check_banned_words
def check_banned_words
if %w(admin join login help register).include? self.username
errors.add(:username, "this is a banned word!!")
end
end
如果禁用詞列表太長,把它變成一個YAML文件,或創建一個模型只是禁止的話,這樣,你就可以添加新詞,而不重新部署應用
+0
它會工作,「創建一個模型只是禁止的話」實際上將解決我所有的問題。謝謝 我仍然想等待某個時候接受這個答案,因爲有人給我一些魔術出鐵路線助手 – 2013-03-28 11:12:19
相關問題
- 1. 檢查數據是否已經存在
- 2. 檢查表單是否已經存在
- 3. Rails,檢查url是否已經存在
- 4. 檢查文件是否已經存在於相同的路徑
- 5. 如何在使用Codeigniter的已配置路由時檢查控制器是否已經存在?
- 6. 如何檢查導軌會話是否已經加載?
- 7. JavaScript的檢查路徑已經存在
- 8. 檢查路由是否存在
- 9. 如何檢查表單的實例是否已經存在?
- 10. 如何檢查表上的數據是否已經存在?
- 11. 如何檢查給定路徑是否存在路由(ASP.NET MVC)?
- 12. 如何檢查是否ID已經存在 - 笨
- 13. 如何檢查EC2中是否已經存在keyname
- 14. 如何檢查目錄是否已經存在於MFC(VC++)中?
- 15. 如何將spring mongodbtemplate檢查對象是否已經存在
- 16. 如何檢查bool是否已經存在
- 17. 如何檢查一個集合是否已經存在於ArangoDB
- 18. 如何檢查記錄是否已經存在?
- 19. 如何檢查PHP數據庫中是否已經存在url?
- 20. 如何檢查DOM中是否已經存在三個元素
- 21. 如何檢查是否值已經存在
- 22. 如何應用檢查確認其他環境路徑是否已經存在?
- 23. 與閃存軌道路由
- 24. 如何檢查連接的路由器是否已更換
- 25. 檢查內存中的值是否已經存在
- 26. 軌道產生錯誤的 '秀' 路線
- 27. 如何知道文件是否已經存在與Firefox iMacros
- 28. 檢查產品密鑰是否已經存在於數據庫中?
- 29. 軌道 - 混淆路由,而params
- 30. RadTreeView的子節點檢查節點是否已經存在
這是一個不錯的和有趣的建議,但我想它目前不能解決我的目的,例如: 用戶的個人資料名稱是:登錄 他的虛榮網址:mywebsite.com/login 這干擾了路線:mywebsite。 com/login 我基本上想要這樣做 – 2013-03-28 11:08:27
我以爲你的問題是關於路由級別的。如果是有關用戶模型驗證,它可能http://stackoverflow.com/questions/9913064/how-can-you-make-sure-a-username-wont-conflict-with-an-existing-route的副本。檢查它,它可能正是你想要的。 – Flexoid 2013-03-28 11:35:24
完美這正是我想要的,謝謝。你可以編輯你的答案,以便我可以將它標記爲已接受的答案。 – 2013-03-28 11:42:54