我正在使用Sinatra。
- 我正在收到第三方的webhooks。
- 从webhook发送的字段因帖子而异。
- 我使用语法[“field”]而不是[:field]作为我模型中的par,因为它是Sinatra应用程序。
Model
def self.fields_hash_from_data(d)
{
field1: d["payload"]["some-field"]["that-appeared-in-this-webhook"]
field2: d["payload"]["some-field"]["that-did-not-appear-in-this-webhook"]
}
end
Controller
def method
json = request.body.read
data = JSON.parse(json)
new_values = data.map do |d|
Model.fields_hash_from_data(d)
end
Model.create(new_values_for_telematics)
end
- 我不能在这种语法 - [“field”]中使用.try,因为所有字段都显示为nil,即使它们有值。
- 如果我不使用.try,则为nil显示未定义的方法`[]':空字段显示NilClass
在这种情况下,我可以使用.try吗?