fl0*_*00r 5 ruby routing parsing ruby-on-rails
我正在寻找解析路径路径的方法,如下所示:
ActionController::Routing.new("post_path").parse
#=> {:controller => "posts", :action => "index"}
Run Code Online (Sandbox Code Playgroud)
它应该是相反的 url_for
UPD
我发现了:
什么是url_for在Rails的相反?获取路径并生成解释路线的函数?
ActionController::Routing::Routes.recognize_path("/posts")
Run Code Online (Sandbox Code Playgroud)
所以现在我需要转换posts_path成"/ posts"
小智 12
在Rails 3中,您可以执行以下操作:
Rails.application.routes.recognize_path "/accounts/1"
# {:action=>"show", :controller=>"accounts", :id=>"1"}
Run Code Online (Sandbox Code Playgroud)
使用ActionController::Routing::Routes.recognize_path保持投掷
ActionController :: RoutingError异常:没有路由匹配"/ accounts/1
有这种方法:
>> ActionController::Routing::Routes.recognize_path("/posts/")
=> {:action=>"index", :controller=>"posts"}
Run Code Online (Sandbox Code Playgroud)
如果你的路线上只有一个字符串(比如"posts_path"),那么我猜你在使用它的上下文中应该可以做到
ActionController::Routing::Routes.recognize_path(send("posts_path".to_sym))
Run Code Online (Sandbox Code Playgroud)
顺便说一句,这也是为我教育:)
| 归档时间: |
|
| 查看次数: |
3583 次 |
| 最近记录: |