我尝试在我的收藏中获取数据,但我在Rails中收到了UnknownFormat错误。我跟随this RailsCast来学习一些Backbone。
我在通过集合在视图中呈现数据的部分,但是当我使用示例代码时,我得到一个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"}
。但这对我没有帮助。有谁知道造成这个错误的原因是什么?
答案 0 :(得分:1)
我今天遇到了这个问题。我有两个可能的修复...
1)只需删除respond_to,respond_with语法并将其替换为render json
语法:
class MoviesController < ApplicationController
def index
@movies = Movie.all
if logged_in?
@user = User.find(session[:user_id])
@movies = @user.movies
end
render json: @movies.to_json
end
end
我知道这可能不太理想,但这对我有用。
2)这个我没有尝试,但它可能值得一试(不要与第一个解决方案一起使用)。
主干设置中的某个位置:
$.ajaxSetup({
dataType: 'json'
});