У меня 3 модели пользователя, пост и комментарий.
Пользователь может иметь несколько постов и комментариев.
Мне нужно подготовить JSON только для последних 50 постов.
Я не использую соглашение по рельсам, поэтому я должен написать это в neewsfeed_controller.
Спасибо за поддержку.
класс NewsfeedsController
def build
@posts = Post.all.order("created_at DESC")
render json: {:event => @posts}
end
def data
@posts = Post.all.order("created_at DESC")
render :partial => "newsfeeds/data.json"
end
private
def post_params
params.require(:post).permit(:content)
end
def find_post
@post = Post.find(params[:id])
end
конец
В представлении: data.json.erb
<%= res = {
:posts => @posts.map do |post|
end
} %>
<% res.to_json.html_safe %>
Маршруты:
get 'build' => 'newsfeeds#build'
get 'data' => 'newsfeeds#data', :defaults => { :format => 'json' }
Форма сборки Я получаю данные.
но я хочу пользовательский формат JSON от data.json
,
Формат ответа, который я хочу:
[
{
"type": "Post",
"content": "First post",
"user": {
"type": "User",
"name": "Luke"
},
"comments": [
{
"type": "Comment",
"user": {
"type": "User",
"name": "Leia"
},
"content": "First comment"
},
{
"type": "Comment",
"user": {
"type": "User",
"name": "Han"
},
"content": "Second comment"
},
]
},
{
"type": "Post",
"content": "Second post",
"user": {
"type": "User",
"name": "Darth Vader"
},
"comments": [
{
"type": "Comment",
"user": {
"type": "User",
"name": "Boba Fett"
},
"content": "Third comment"
},
{
"type": "Comment",
"user": {
"type": "User",
"name": "Jabba"
},
"content": "Fourth comment"
},
]
}
]
Пожалуйста, руководство.
В настоящее время я не могу получить этот формат.