我正在编写一个使用AngularJS的应用程序,因此应用程序设置为将所有请求路由到角度接管的主要主页。然后在api范围内定义所有路径,其中angular用于检索数据。但是,如果用户导航到具有普通URL的页面,那么当它重定向到主页时,它会保留该角度然后用于加载正确状态的URL。
我现在想要做的是,能够在rails中使用URL帮助程序来生成我的URL,但生成的URL不包括范围的/ api。有什么方法可以解决这个问题吗?
routes.rb
看起来有点像
scope "/api", shallow_path: "/api" do
... normal stuff here ...
end
如果我尝试使用其中一个助手,
meeting_url(@meeting, subdomain: "test")
它生成的网址是
http://test.domain.com/api/meetings/1
有没有办法让它剥离/api
?
答案 0 :(得分:0)
我不相信有一种内置的方法可以做到。
但是,你是红宝石,所以有很多方法可以做你想做的事。
一种方法,因为你在自己的应用程序中,是做猴子补丁String
:
class String
def no_api
self.gsub(/\/api/, '')
end
end
meeting_url(@meeting, subdomain: 'test').no_api #=> http://test.domain.com/meetings/1
如果您觉得令人反感,可以在ApplicationController
或帮助模块中定义方法:
def no_api(url)
url.gsub(/\/api/, '')
end
等。等等。