2015-09-02 4 views
0

Моя модель называется Reports. У меня есть вызов Ajax, который установлен в @reports = Report.all.Как передать created_at из Rails через Ajax

Report.all содержит обычные поля Rails, такие как created_at и updated_at.

Теперь я хотел бы показать их на странице, но по некоторым причинам данные JSON, переданные на страницу, не содержат этих полей. Это какие-то настройки безопасности Ruby?

Мне любопытно, как включить их и через какой механизм JSON-загрузка имеет поле URL, которое не является частью модели?

UPD. регулятора, код

#GET /reports 
#GET /reports.json 
def index 
    @reports = Report.all 
end 

Когда я распечатать Report.all в рельсах консоли, она содержит created_at поле. Когда я скручиваю этот контроллер через 0.0.0.0:3000/report.json, нет файлов created_at и updated_at.

+0

Вы можете разместить вид, где вы пытаетесь показать 'created_at'? – Pavan

+0

Пожалуйста, разместите несколько примеров кода, который вы используете – usmanali

+1

Привет, вам нужно будет указать свой код с контроллера –

ответ

2

По умолчанию генератор Rails будет генерировать файл представления JBuilder для индекса:

$ rails generate scaffold Report ... 

даст вам:

# app/views/reports/index.json.jbuilder 
json.array!(@reports) do |report| 
    json.extract! report, :id, :some_other_attributes, ... 
    json.url report_url(report, format: :json) 
end 

Метод extract! будет выводить только атрибуты явно указано в его параметры. Если вы хотите вывести created_at и updated_at в индексе JSon, просто добавьте их в список параметров метода в:

json.extract! report, :id, ..., :created_at, :updated_at 
+0

Это! Спасибо, приятель! – kaboom

Смежные вопросы