Я пытаюсь создать основы приложения с помощью Ember на Rails, и я получаю эту ошибку:Ошибка при загрузке маршрута: - Почему я не извлекаю рельсы формы данных?
Ошибка при обработке маршрута: сообщения
Было бы полезно, если бы Ember сказал что-то о ошибка, но это не так. Вот код, о котором идет речь (я считаю, что я включаю все необходимые части).
// PostsRoute
App.PostsRoute = Ember.Route.extend({
model: function(){
return this.store.find('post');
// return [{title: 'fixture'}, {title: '2'}]
}
})
// Router.
App.Router.map(function() {
// location: 'auto',
// rootURL: '/',
this.resource('posts', { path: '/' })
});
// Routes.rb
resources :posts do
resources :comments
end
// Post model - Ember
App.Post = DS.Model.extend({
title: DS.attr('string'),
description: DS.attr('string'),
imageFileName: DS.attr('string'),
imageContentType: DS.attr('string'),
imageFileSize: DS.attr('number'),
imageUpdatedAt: DS.attr('date'),
createdAt: DS.attr('date'),
updatedAt: DS.attr('date'),
userId: DS.attr('number'),
});
// Posts controller.rb
class PostsController < ApplicationController
before_action :set_post, only: [:show, :edit, :update, :destroy]
respond_to :html
def index
@posts = Post.all
puts "in PostsController index. "
puts @posts
respond_with(@posts)
end
...
// Post Serializer
class PostSerializer < ActiveModel::Serializer
attributes :id, :title, :description, :created_at, :updated_at, :user_id, :image_file_name, :image_content_type, :image_file_size, :image_updated_at
end
Я пытаюсь понять, что нужно настроить для Ember для получения данных из Rails API. Rails-мудрый, он возвращает данные в порядке.
Из чего я понимаю, вот как идет приложение. Ember сначала проверяет маршрут (здесь, PostsRoute). Ожидается, что маршрут будет иметь «модель», поэтому он будет выглядеть как свойство модели. Здесь свойство модели делает вызов в Магазин, чтобы получить все сообщения. т. е. this.store.find ('post'). [заменяет этот вызов статическим массивом, кажется, работает нормально.]
Это делает вызов функции индекса Rails PostsController. Я могу подтвердить, что эта функция достигнута из-за заявлений печати, которые я там поставил. Функция index возвращает переменную с моделями post-post.
Оттуда должно быть указано JSON-ified для Ember, чтобы иметь возможность использовать его. Таким образом, они помещаются через сериализатор, который здесь является post_serializer.rb. Это определяет, какие свойства отправлять как форму JSON.
Я подозреваю, что существует некоторая проблема с тем, как я обрабатываю эту сериализуемую часть, так как я подтвердил, что сообщения действительно были загружены в индексной функции PostsController.rb, но не удалось (я считаю) сделать путешествие обратно в Эмбер.
Я не понимаю, почему. Что мне не хватает?
Если это какая-то проблема, есть некоторые отношения has_many, которые я еще не включил, потому что я сначала хотел это сделать. И для полноты картины, здесь полная ошибка, как на консоли Chrome:
Error while processing route: posts ember.js?body=1:15376
logToConsole ember.js?body=1:15376
logError ember.js?body=1:26315
defaultActionHandlers.error ember.js?body=1:26272
triggerEvent ember.js?body=1:26363
trigger ember.js?body=1:46876
Transition.trigger ember.js?body=1:46721
(anonymous function) ember.js?body=1:46526
tryCatch ember.js?body=1:47310
invokeCallback ember.js?body=1:47322
publish ember.js?body=1:47293
publishRejection ember.js?body=1:47235
(anonymous function) ember.js?body=1:29438
DeferredActionQueues.invoke ember.js?body=1:682
DeferredActionQueues.flush ember.js?body=1:752
Backburner.end ember.js?body=1:138
Backburner.run ember.js?body=1:193
run ember.js?body=1:18226
hash.error ember-data.js?body=1:1886
fire jquery.js?body=1:3120
self.fireWith jquery.js?body=1:3232
done jquery.js?body=1:9278
callback jquery.js?body=1:9686