我试图在jbuilder中的某些条件下显示key-value
对,如下所示
json.id plan.id
json.title plan.title
json.description plan.description
json.plan_date plan.plan_date.iso8601
json.start_time plan.start_time.strftime("%I:%M %p") if !plan.start_time.present?
错误
NoMethodError at /api/plans/16
==============================
> undefined method `strftime' for nil:NilClass
app/views/api/v1/plans/_plan.json.jbuilder, line 5
--------------------------------------------------
``` ruby
1 json.id plan.id
2 json.title plan.title
3 json.description plan.description
4 json.plan_date plan.plan_date.iso8601
> 5 json.start_time plan.start_time.strftime("%I:%M %p") if !plan.start_time.present?
答案 0 :(得分:10)
好吧,内联on.exit()
修饰符不适用于jubilder。我写的就像
if
答案 1 :(得分:0)
问题是您没有正确使用括号,因此未正确评估if
块。
书写
json.start_time plan.start_time.strftime("%I:%M %p") if !plan.start_time.present?
相当于:
json.start_time(plan.start_time.strftime("%I:%M %p") if !plan.start_time.present?)
正确的写作方式是:
json.start_time(plan.start_time.strftime("%I:%M %p")) if !plan.start_time.present?
内联if
修饰符也适用于jbuilder。