【发布时间】:2019-06-01 09:51:39
【问题描述】:
我有 3 个模型用户,发帖和评论。 用户可以有多个 post 和 cmets。 我只需要为最后 50 个帖子生成 JSON。 我没有使用 rails 约定,所以我必须在 newsfeed_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' }
表单构建我正在获取数据。
但我想要来自data.json 的自定义 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"
},
]
}
]
请指导。
目前,我无法获得该格式。
【问题讨论】:
-
您是否只是在您的
.erb文件中忽略了周围的<%= %>,还是您在原始文件中也忘记了它们? -
嗨,我已经对问题进行了更改并删除了不必要的代码。
-
尝试在您的模板中切换
<%=和<%。前者用于将 Ruby 代码的结果实际渲染到模板中,而后者仅用于运行任意代码。 -
给出空白页,我需要像上面提到的那样回复
标签: ruby-on-rails json ruby api render