如何为所有Ember.js路由指定URL'前缀'?

时间:2013-02-22 02:29:39

标签: ruby-on-rails routing ember.js ember-rails

我正在将Ember.js集成到现有的Rails应用程序中。我想首先使用Ember进行单个控制器操作dashboard#index。从那里开始,我计划将网站的其余部分集成到ember应用程序中,可能是基于每个控制器。

但是我在管理ember URL方面遇到了麻烦,因为我还没准备好将Rails根路径的控制权交给Ember。

例如,我希望以下路由由rails处理,没有Ember:

/
/login
/logout

,同时:

/dashboard

应该触发Ember应用程序。然后,会有各种余烬仪表板路线,例如/dashboard/#/favoritesdashboard/#/upcoming

我有通过资产管道设置的备用Rails布局和路径就好了,但是我发现如果在prefix之后添加了ember路由,那么Ember路由器就不会很好用了/dashboard/

有没有一种干净的方法来设置它?

由于

1 个答案:

答案 0 :(得分:0)

dashboard控制器集layout false内,以便忽略您的应用程序布局。

然后让你的dashboard/index.html.erb文件创建自己的布局并包含ember应用程序。看起来应该是这样的:

<!DOCTYPE html>
<html>
<head>
  <title>ember app</title>
  <%= stylesheet_link_tag  "application" %>
  <%= csrf_meta_tags %>
</head>
<body>
<%= javascript_include_tag "ember_app" %>
</body>
</html>

然后在您的assets/javascripts/中,您应该有一个如下所示的文件ember_app.js

//= require handlebars
//= require ember
//= require ember-data
//= require_self
//= require ./store
//= require_tree ./models
//= require_tree ./controllers
//= require_tree ./views
//= require_tree ./helpers
//= require_tree ./components
//= require_tree ./templates
//= require_tree ./routes
//= require ./router
//= require helpers

# for more details see: http://emberjs.com/guides/application/
window.DashboardApp = Ember.Application.create() 

我使用的一个好资源是ember-rails gem。它也有good documentation