У меня есть веб-страница, пытающаяся сделать запрос на приложение rails для json-данных, используя d3. По какой-то причине я продолжаю получать ошибку 406 ("Не допустимо") и внутри контроллера, request.content_type
- это nil
и request.format
дает мне:
#<Mime::Type:0x00000002595c20 @synonyms=["application/xhtml+xml"], @symbol=:html, @string="text/html", @hash=4164709875014779265>
Что я делаю неправильно?
JavaScript
url = '/sources/data/' + $('#source_id').val() + '/' + $(this).val();
return d3.json(url, function(d) {
var color, format, height, pack, svg, width;
console.log(d);
//...do some stuff
Контроллер:
class SourcesController < ApplicationController
before_action :set_source
def get_data
@count_data = Hash.new
case params[:type].downcase
when 'stems'
@count_data = JSON.parse @source.stem_cache
when 'words'
@count_data = JSON.parse @source.word_cache
when 'synonyms'
@count_data = JSON.parse @source.synonym_cache
end
puts "hello"
respond_to do |format|
format.json {render json: @count_data}
end
end
Там проблема в этой строке
url = '/sources/data/' + $('#source_id').val() + '/' + $(this).val();
ты должен
добавить расширение 'json' в URL
или изменить файл маршрута
resources: source, defaults: {format:: json}