使用现有Rails应用程序将路由从Rails迁移到Ember;余烬轨道”;
Migrate Routes from Rails to Ember with Existing Rails Application using "ember-rails"
为现有rails应用程序使用gem"ember-rails"。我正试图使用Ember路由一个资源,很多人告诉我,这个代码应该可以工作,但事实并非如此。
我想突破学习曲线,让它发挥作用,但我需要一些帮助。
错误
Routing Error
No route matches [GET] "/newslinks"
代码
application.js
//= require jquery
//= require jquery-ui
//= require jquery_ujs
//= require jquery-fileupload/basic
//= require jquery-fileupload/vendor/tmpl
//= require chosen-jquery
//= require bootstrap
//= require bootstrap-notify
//= require jquery.limit-1.2.source
//= require bootstrap-switch
//= require handlebars
//= require ember
//= require ember-data
//= require_self
//= require app
app.js
App = Ember.Application.create({
LOG_TRANSITIONS: true,
ready: function() {
console.log('App ready');
}
});
App.Router.map(function() {
this.resource('newslinks', { path: '/' });
});
App.IndexRoute = Ember.Route.extend({
redirect: function() {
this.transitionTo('newslinks');
}
});
App.NewslinksRoute = Ember.Route.extend({
model: function() {
return App.Newslink.find();
}
});
DS.RESTAdapter.reopen({
namespace: 'api/v1'
});
App.Store = DS.Store.extend({
revision: 13
});
App.Newslink = DS.Model.extend({
name: DS.attr('string')
});
routes.rb
namespace :api do
namespace :v1 do
resources :newslinks
end
end
应用程序。手柄
<!DOCTYPE html>
<html>
<head>
<meta name="description" content="Ember - Latest" />
<meta charset=utf-8 />
<title>Ember Latest</title>
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0-rc1/css/bootstrap.min.css" rel="stylesheet">
<script src="//netdna.bootstrapcdn.com/bootstrap/3.0.0-rc1/js/bootstrap.min.js"></script>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://builds.emberjs.com/handlebars-1.0.0.js"></script>
<script src="http://builds.emberjs.com/ember-latest.js"></script>
<script src="http://builds.emberjs.com/ember-data-latest.js"></script>
</head>
<body>
<script type="text/x-handlebars">
<h2>Here I am</h2>
</script>
</body>
</html>
结论
请告诉我你建议如何只设置一条路线:/newslinks through Ember,并使用现有的铁路路线进行渲染。
这与数据无关(只想使用ember渲染路由)。此外,这段代码在jsbin中工作,所以它也不是为了让Ember独立于rails工作
我需要在routes.rb中引导rails来呈现Ember路线吗?或者Ember路由是坐在铁轨上路由,并挑选它识别的路由?
如果您使用带有rest适配器的ember数据,配置如下:
给定具有以下json结构的url your-host/api/v1/newslinks
:
{
newslinks: [
{id: 1, name: 'foo'},
{id: 2, name: 'bar' }
]
}
你只需要映射新闻链接的路线:
App.Router.map(function() {
this.resource('newslinks', { path: '/' });
});
并在DS.RestAdapter
:中映射命名空间
DS.RESTAdapter.reopen({
namespace: 'api/v1'
});
下面是一个使用rest适配器并模拟响应的实时演示。
默认情况下,rails将在没有json:根路径的情况下为json提供服务
[
{id: 1, name: 'foo'},
{id: 2, name: 'bar' }
]
为了容易地完成这项工作,在rails控制器中,只需将:json
添加到render
方法中,然后添加数据。因此rails将使用活动模型序列化程序,并且根路径将存在:
def index
@users = User.all
render json: @users
end
我希望它能有所帮助。
相关文章:
- 强制模板刷新ember.js
- Ember Data DS.Model's set函数不起作用
- 如何从rails中的代码中删除新行( )
- Rails File_field最大堆栈大小
- angularjs+rails应用程序中未显示模板
- Ember.js+传单+rails(使用Javascript MVC创建rails应用程序并打开源代码映射)
- 就像话语之于Ember.js,什么是一些大型开源项目编写的rails + angularjs
- 如何防止 Ember Rails 模板泄漏到浏览器中
- 即使没有嵌套路由,Ember Rails 后退按钮也不会呈现模板
- 如何在 Rails 应用程序中使用 Ember 插件
- 在rails-ember应用程序中,我如何在css中渲染bg图像并使其适合浏览器
- 如何在Ember.js和Rails中使用sweet alert
- 使用现有Rails应用程序将路由从Rails迁移到Ember;余烬轨道”;
- 将Ember.js仅用于Rails应用程序的一部分最直接的方法是什么
- Ember应用程序请求Rails应用程序--跨域
- 使用Ember.js访问rails关系
- Rails + Ember + Ember Data empty JSON response
- 使用ember-rails宝石填写表格
- 在ubuntu 14.04上使用ember.js的Ruby on rails应用程序
- Ember CLI Rails:创建用户模型