我有一個任務在運行時創建不同url的映射。
在應用程序中我有一個GUI界面,顯示來自routes.rb文件的路由列表。
用戶可以將該url更改爲接口
的某個不同名稱。 (abc/mno) - 用戶可以將它們更改爲 - (hello)
因此,如果用戶在瀏覽器請求中輸入/ hello重定向到/ abc/mno
我必須將這些映射的路由存儲在數據庫中。
如何在創建數據庫中的新記錄的同時向已定義的路由(routes.rb)添加動態映射路由
如何在加載routes.rb文件時從數據庫添加路由。
我不能夠想出如何擴展默認路由器,它可以包括從數據庫路線..如何在rails3中創建動態路由和幫助程序
3
A
回答
1
我沒有給你一個完整的解決方案,但您可以用兩種方法入手:
1
如果你不想使用機架中間件,可以使用約束。我們希望,您的動態路由的作用域的東西,如「/ ABC/什麼,後在這裏,可以待動態」,而不是直接關閉根...
所以,讓我們說,你想動態路由基於用戶的名字,那麼你會做以下操作:創建一個控制器處理所有路由
#config/routes.rb
match '/abc/:route' => "abc#dynamicroute", :contraints => DynamicRouteConstraint.new
#lib/dynamic_route_constraint.rb
class DynamicRouteConstraint < Struct.new
def matches?(request)
User.find_by_first_name(request.params[:route]).present?
end
end
#app/controllers/abc_controller.rb
class AbcController < ApplicationController
def dynamicroute
@user = User.find_by_first_name(params[:route])
#render or redirect, however you wish
end
end
+0
你不需要實例化一個新的對象,你可以調用一個類方法。 +1給你的答案,因爲它激勵我實現我自己的解決方案! – Cyzanfar
相關問題
- 1. 幫助程序中的動態路徑
- 2. Rails路由幫助程序
- 3. 如何創建異常幫助程序?
- 4. 如何動態創建codeigniter路由?
- 5. 在mvc5中創建動態路由
- 6. 自定義URL路由幫助程序
- 7. MVC與動態路由3路由幫助
- 8. Symfony2:動態創建路由
- 9. 路由在Rails3中
- 10. 路由在Rails3中
- 11. 需要與Rails3中的路由幫助隱藏控制器
- 12. 如何在Express中路由動態和靜態路由
- 13. 如何在Angularjs中結合動態路由和靜態路由
- 14. 如何在HTML動作鏈接中動態創建路由
- 15. 需要幫助在VB.Net中動態創建線程
- 16. 幫助asp.net路由
- 17. CakePHP路由幫助
- 18. 在HTML幫助程序的幫助下創建img標記
- 19. 如何在bootstrap的幫助下創建列的動態佈局?
- 20. 如何在angular2中創建動態路由?
- 21. 如何在Laravel中創建動態路由?
- 22. 如何在角度2中創建動態路由器連接?
- 23. 如何在phalcon中創建動態路由?
- 24. 如何在燼中創建動態值的路由
- 25. 如何在sh-service框架中創建動態路由
- 26. 需要幫助在Cisco 2600(IOS 12)上創建路由
- 27. Rails3模塊幫助
- 28. ActiveModel和路徑幫助程序
- 29. Rails3助手和動態內容
- 30. 如何在ASP.NET Core中創建通用路由處理程序
問題是,..當用戶創建從GUI鍵盤映射映射不反映,直到我重新啓動我的服務器again..different path_helpers也不可用 – sanjee
@BlueSmith BlueSmith發佈的第二個鏈接已經死了。所示的例子是一個很好的起點,所做的改變應該是直截了當的做你想做的事情。 – RadBrad