Я пытаюсь получить данные в своей коллекции, но я получаю ошибку UnknownFormat в Rails. Я следую this RailsCast, чтобы получить возможность немного узнать о Магине.ActionController :: UnknownFormat reply_with using Backbone.js
Я нахожусь в той части, где мы представляем данные в виде коллекции, но когда я использую код примера, я получаю ошибку UnknownFormat.
Это мой Rails MoviesController
class MoviesController < ApplicationController
respond_to :json
def index
respond_with Movie.all
if logged_in?
@user = User.find(session[:user_id])
@movies = @user.movies
end
end
Это мой файл Rails маршрутизатор,
Rails.application.routes.draw do
get 'sessions/new'
root 'movies#index'
get 'signup' => 'users#new'
get 'login' => 'sessions#new'
post 'login' => 'sessions#create'
delete 'logout' => 'sessions#destroy'
scope "api" do
resources :movies, :defaults => {:format => "json"}
end
resources :users
И это моя коллекция Backbone
class Movieseat.Collections.Movieseats extends Backbone.Collection
url: '/api/movies'
Я сделал некоторые исследования и обнаружил, что многие люди говорят, что мне нужно добавить , :defaults => {:format => "json"}
в мой ресурс фильма. Но это мне не помогло. Кто-нибудь знает, что вызывает эту ошибку?
Если я использую 'respond_to: JSON,: html' вместо просто' respond_to: json' я не получаю ошибку UnknownFormat но это дает мне ошибку когда я использую '- @ movies.each do | movie | % div {: class => "movie-frame"} = movie.title' говорит 'undefined method' each 'for nil: NilClass' –
Я полагаю, что я не понимаю, как вы планируете использовать магистраль в этом случае. Я думал, что вы предлагаете @movies как json для создания базовой сети. Разве это не так? Кроме того, я полагаю, что очевидная вещь здесь - убедиться, что ваша модель фильмов фактически возвращает данные. Попробуйте открыть консоль рельсов и сделать «Movie.all» – Jeremiah
. А может быть. Ну, я изучаю Backbone, и я смешиваю некоторые вещи. Смешивание базы и Rails. –