我正在将Ember.js集成到现有的Rails应用程序中。我想首先使用Ember进行单个控制器操作dashboard#index
。从那里开始,我计划将网站的其余部分集成到ember应用程序中,可能是基于每个控制器。
但是我在管理ember URL方面遇到了麻烦,因为我还没准备好将Rails根路径的控制权交给Ember。
例如,我希望以下路由由rails处理,没有Ember:
/
/login
/logout
,同时:
/dashboard
应该触发Ember应用程序。然后,会有各种余烬仪表板路线,例如/dashboard/#/favorites
和dashboard/#/upcoming
我有通过资产管道设置的备用Rails布局和路径就好了,但是我发现如果在prefix
之后添加了ember路由,那么Ember路由器就不会很好用了/dashboard/
。
有没有一种干净的方法来设置它?
由于
答案 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。