我正在尝试使用jbuilder从事件列表中创建json文件。它必须采用特定格式。目前,无论我放在jbuilder文件中,当你转到users / 1 / events.json时,该文件都是空白的(只是{})。
我已尝试在控制器中对块进行响应,但之后只返回错误格式的事件列表。
我认为路由已正确完成,因为日志文件表示在请求url /users/1/myevents.json时成功呈现了文件myevents.json.jbuilder。另外,当请求.html时,myevents.html文件显示正常,其中包含所有正确的信息。
我真的很难过这个,任何帮助都会非常感激!!
我会列出所有相关代码,以防任何人可以选择一些东西:
事件控制器:
def myevents
@events = current_user.events
end
myevents.json.jbuilder:
Jbuilder.encode do |json|
json.timeline do
json.headline current_user.first_name
json.type "default"
json.text "A Timeline"
json.start_date
json.array!(@events) do |event|
json.start_date event.start_date
json.end_date event.end_date
json.headline event.headline
json.text event.text
json.asset do
json.media event.media
json.credit event.credit
json.caption event.caption
end
end
end
end
environment.rb中:
Jbuilder.key_format :camelize => :lower
routes.rb中:
match 'users/:id/events' => 'events#myevents'
答案 0 :(得分:4)
原因是您需要将以下行放入RSPEC控制器帮助文件中:
config.render_views = true
答案 1 :(得分:3)
据我所知,你可以跳过
Jbuilder.encode
尝试没有这个块,也许一切都会好的。
答案 2 :(得分:1)
想出来。出于某种原因,它不喜欢Jbuilder.encode行| json |,即使这是要使用的文档中列出的内容。但是,响应的语法仍然不太正确。