使用.try和[“posted-field”]而不是symbol:posted-field

时间:2016-11-03 12:41:57

标签: sinatra sinatra-activerecord

  

我正在使用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吗?

0 个答案:

没有答案