3

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

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

例如,我希望以下路线由 rails 处理,不带 Ember:

/
/login
/logout

尽管:

/dashboard

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

我已经通过资产管道设置了备用 Rails 布局和路径,但我发现如果在prefix诸如/dashboard/.

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

谢谢

4

1 回答 1

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宝石。它也有很好的文档

于 2014-02-06T17:54:48.250 回答