この質問で述べたものと非常によく似た問題があります。ただし、回答に記載されている解決策はいずれも機能していません。
.json
拡張機能の有無にかかわらず、jQuery$.ajax
と(正しいAcceptヘッダーを使用して)ルートにアクセスしようとすると$.getJSON
、次の例外が発生します。
欠落しているテンプレートusers/events / index、application / index with {:handlers => [:erb、:builder、:coffee、:haml]、:formats => [:json]、:locale => [:en、:en ]}。
このコントローラーにはJSON応答のみが必要なので、このコントローラーのテンプレートは必要ありません。
私のコントローラーは次のように定義されています:
class Users::EventsController < ApplicationController
respond_to(:json)
def index
# Some extra code here...
respond_with(@data)
end
end
これらのルートを(「ユーザー」スコープの下で)配置すると、次のようになります。
resources(:events, :only => [:index, :show]) do
collection do
get ':year/:month', :to => 'events#index', :format => :json
end
end
ブロックを追加してdo |format|
明示的にJSONとしてレンダリングする場合、問題は解決しません。
Rails 3.1.1と3.2の両方でこれを試したところ、同じ問題が発生しました。
「.json」でのアクセスが機能しないため、サーバー側の問題のように見えます。私は何が欠けていますか?