[英]Mapping Rails routes to Ember routes
注意:这与Ember Routes和Rails Routes不同
我有一个单页的Ember应用程序,它位于Rails堆栈的顶部。 忽略对Rails的需求-这是必需的。
我的Ember应用程序视图位于/ember_app
。 我想将正常的资源丰富的路线映射到Ember路线,如下所示:
GET /home ~> /ember_app/#/home
GET /account ~> /ember_app/#/account
GET /login ~> /ember_app/#/login
最好的方法是什么? 一种想法是:
routes.rb
将所有请求发送到单个操作ember_app#index
以及包含Ember路由名称的参数(与redirect_route: "account"
)。 注意home
, account
和login
不需要从Rails进行任何数据方面的操作,只需要将其重定向到Ember中的该路由。 ember_app#index
操作将route
参数存储到实例变量@redirect_route
ember_app.html.erb
,对@redirect_route
进行插值并将其存储在JavaScript变量EmberApp.redirectRoute
application_view.js
(或适当的位置)中,我们使用EmberApp.redirectRoute
在客户端进行重定向。 这种方法听起来合理吗? 我们还可以为每个路线设置Rails动作,并且该路线仅呈现index
动作并传递route
参数。 但是,似乎(应该)有一种方法可以通过编程将Rails路线映射到Ember路线。 我们不想在Rails routes.rb
和Ember router.js
重复它们。 有什么想法吗?
我不确定我是否正确理解了这个问题,但是听起来您需要做的就是将所有内容映射到您的ember应用,然后让ember进行路由。
使用通配符路由应该可以解决问题。 只需将所有内容映射到该控制器,即可加载您的应用,然后由Ember Router决定下一步要做什么。
get '(*anything)', to: 'ember_app#index'
这就是我设置的方法,除了我不是从根本上做的,我的看起来有点像:
get 'application_name/(*anything)', to: 'ember_app#index'
希望这可以帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.