Я пытаюсь выполнить руководство по Railscasts 340, чтобы заполнить компонент JQuery Datatables из данных JSON на стороне сервера. Ссылка на учебник: http://railscasts.com/episodes/340-datatables. Я настраиваю код для работы с моей собственной таблицей базы данных и данными.Rails: Datatables Ошибка JSON
При попытке посетить ссылку, которая должна выводить JSON в DataTable, я получаю следующее сообщение об ошибке:
not opened for reading
код в контроллер, который обрабатывает запрос выглядит следующим образом:
class DatadescriptionController < ApplicationController
layout "datadescription"
def index
respond_to do |format|
format.html
format.json { render json: DatasetIndexDatatable.new(view_context) }
end
end
end
и DatasetIndexDatatable класс, который конкретизируется в команде format.json выглядит следующим образом:
class DatasetIndexDatatable
delegate :params, :h, :link_to, :number_to_currency, to: :@view
def initialize(view)
@view = view
end
def as_json(options = {})
{
sEcho: params[:sEcho].to_i,
iTotalRecords: Datadescription.count,
iTotalDisplayRecords: datasets.total_entries,
aaData: data
}
end
private
def data
datasets.map do |dataset|
[
id,
database,
table,
created_by,
name
]
end
end
def datasets
@datasets ||= fetch_datasets
end
def fetch_datasets
datasets = Datadescription.order("#{sort_column} #{sort_direction}")
datasets = datasets.page(page).per_page(per_page)
if params[:sSearch].present?
datasets = datasets.where("name like :search or created_by like :search", search: "%# {params[:sSearch]}%")
end
datasets
end
def page
params[:iDisplayStart].to_i/per_page + 1
end
def per_page
params[:iDisplayLength].to_i > 0 ? params[:iDisplayLength].to_i : 10
end
def sort_column
columns = %w[id database table created_by name]
columns[params[:iSortCol_0].to_i]
end
def sort_direction
params[:sSortDir_0] == "desc" ? "desc" : "asc"
end
end
Может ли кто-нибудь пролить свет на то, что это означает «не открытое для чтения», и как я могу исправить свой код для вывода json, как предполагалось?