从一个JavaScript文件中,我有带有参数的发布请求:
Parameters: {"interview"=>{"participants"=>"1,2,3", "start_time"=>"2020-05-28T09:32:00.000Z", "end_time"=>"2020-05-28T10:32:00.000Z"}}
而且我正在控制器的创建方式中访问它:
puts("create entry")
@start_time = params[:start_time]
@end_time = params[:end_time]
p(@start_time)
p(@end_time)
participants = params[:participants].try(:split, ",")
p(participants)
但是,当检查p和put的值时,例如:
create entry
nil
nil
nil
我不明白背后的原因是什么。
他们都在面试密钥的“下面”,所以应该是:
@start_time = params[:interview][:start_time]
@end_time = params[:interview][:end_time]
participants = params[:interview][:participants].try(:split, ',')
在这种情况下最好使用dig
:
participants = params.dig(:interview, :participants).try(:split, ',')
...
如果params[:interview]
,则存储nil
并提供“默认”值:
interview = params[:interview] || {}