我试图在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
--------------------------------------------------
``` ruby1 json.id plan.id2 json.title plan.title3 json.description plan.description4 json.plan_date plan.plan_date.iso86015 json.start_time plan.start_time.strftime(%i:%M%p) if !plan.start_time.present?
发布于 2015-10-24 04:24:23
嗯,内联if修饰符不适用于jubilder。我的确是这样写的
if plan.start_time.present?
json.start_time plan.start_time.strftime("%I:%M %p")
end发布于 2018-04-25 07:56:09
问题是您没有正确地使用括号,因此您的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。
https://stackoverflow.com/questions/33314487
复制相似问题