注意:这与Ember Routes and Rails Routes不一样
我有一个单页的Ember应用程序,生活在一个Rails堆栈之上。忽略对Rails的需求--它是必需的。
我的Ember应用程序视图位于/ember_app。我希望有正常的足智多谋的路线映射到安博航线,如下所示:
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中。有什么想法吗?
发布于 2014-03-14 22:12:32
我不确定我是否正确地理解了这个问题,但听起来你所需要的只是把所有的东西都映射到你的余烬应用程序中,然后让成员完成路由。
使用通配符路由应该可以做到这一点。只要把所有的东西都映射到控制器上,你的应用程序就会被加载,然后Ember路由器就会决定下一步该做什么。
get '(*anything)', to: 'ember_app#index'这就是我设置的方式,除了我不是在根上做的,我的看起来更像:
get 'application_name/(*anything)', to: 'ember_app#index'希望这能有所帮助
https://stackoverflow.com/questions/22386644
复制相似问题