3

既存の Rails アプリに gem "ember-rails" を使用する。Ember を使用して 1 つのリソースをルーティングしようとしていますが、多くの人から、このコードは機能するはずだと言われましたが、そうではありません。

学習曲線を突破してこれを機能させたいのですが、助けが必要です。

エラー

Routing Error
No route matches [GET] "/newslinks"

コード

アプリケーション.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')
});

ルート.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 を Ember 経由で 1 つだけルートを設定し、既存の rails ルートを使用してレンダリングすることをお勧めする方法を教えてください。

これはデータに関するものではありません (ember を使用してルートをレンダリングしたいだけです)。また、このコードは jsbin で動作するため、Ember を Rails から独立して動作させることも目的ではありません。

routes.rb で Ember ルートをレンダリングするようにレールを指示する必要がありますか? それとも、Ember ルーティングはレール ルーティングの上にあり、認識するルートをチェリー ピッキングしているのでしょうか?

4

1 に答える 1