Я работаю над проектом ruby on rails и хочу добавить ответ Json.
Один простой способ: -
def index
@users = User.all
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @users }
format.json { render :json => @users.to_json }
end
end
Но есть некоторые проблемы с этим: -
- Я не хочу указывать весь пользовательский объект в ответе json, например атрибуты хэша пароля и счетчика кэша. Facebook, атрибуты твиттера и т. Д.
- Я хочу добавить больше деталей в объект json (с учетом модели stackoverflow), например, Последний вопрос каждого пользователя, последний ответ каждого пользователя. Вместо имени изображения, хранящегося в БД с помощью скрепки, я хочу передать полный URL-адрес изображения.
Таким образом, вопрос заключается в том, как код json reponse в файле index.json.erb, как мы делаем в index.html.erb. Отформатируйте свой собственный ответ json согласно потребностям.
EDIT
def index
@users = User.all
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @users }
format.json { render :file => "index.json.erb", :content_type => 'application/json' }
end
end
index.json.erb файл: -
<% @users.each do |user| %>
{
first_name: <%= user.first_name %>,
last_name: <%= user.last_name %>
}
<% end %>
Ошибка: -
шаблон отсутствует.
PS: - Я просто пытаюсь создать этот файл. Это всего лишь образец
EDIT

редактировать
{ { first_name: Mohit , last_name: Jain } { first_name: Sahil Miglani, last_name: } { first_name: Hitesh Bansal, last_name: } { first_name: Sudhanshu, last_name: } { first_name: Saakshi, last_name: } { first_name: Kutta, last_name: } { first_name: bc, last_name: } { first_name: hey, last_name: } { first_name: fewhjfbwfb, last_name: vdsv } }
EDIT
[ { first_name: Mohit , last_name: Jain } , { first_name: Sahil Miglani, last_name: } , { first_name: Hitesh Bansal, last_name: } , { first_name: Sudhanshu, last_name: } , { first_name: Saakshi, last_name: } , { first_name: Kutta, last_name: } , { first_name: bc, last_name: } , { first_name: hey, last_name: } , { first_name: fewhjfbwfb, last_name: vdsv } ]
РЕДАКТИРОВАТЬ, довольно близко, чтобы найти решение: -
[
<% @users.each_with_index do |user,index| %>
{
<%= "first_name".to_json.html_safe %>: <%= user.first_name.to_json.html_safe %>,
<%= "last_name".to_json.html_safe %>: <%= user.last_name.to_json.html_safe %>
}
<% unless index== @users.count - 1%>
,
<% end %>
<% end %>
]
Ответ: -
[
-
{
first_name: "Mohit "
last_name: "Jain"
}
-
{
first_name: "Sahil Miglani"
last_name: null
}
-
{
first_name: "Hitesh Bansal"
last_name: null
}
-
{
first_name: "Sudhanshu"
last_name: null
}
-
{
first_name: "Saakshi"
last_name: null
}
-
{
first_name: "Kutta"
last_name: null
}
-
{
first_name: "bc"
last_name: null
}
-
{
first_name: "hey"
last_name: null
}
-
{
first_name: "fewhjfbwfb"
last_name: "vdsv"
}
]
Теперь все, что я хочу, это включить каждый раздел ответа в пользовательский массив