Rails - 如何在添加到新对象之前检查是否已定义?

时间:2013-08-28 00:20:41

标签: ruby-on-rails ruby json ruby-on-rails-3

我正在使用亚马逊产品广告API,我正在我的控制器中修改其响应以呈现自定义的JSON,但其响应会根据产品类别发生很大变化,因此我需要编写可以捕获所有内容的代码它改变的方式。我只需要一些数据,那么我怎么能在亚马逊的API响应中检查这些部分是否存在,然后将它们包含在我自己的自定义JSON中呢?

注意:我正在使用this gem与Amazon的API集成。它在自己的对象中返回API响应。

@results = (Amazon's API response)
@custom_response = []
@results.items.each do |product|
        @new_response = OpenStruct.new(
                        :id => product.asin, 
                        :source => "amazon", 
                        :title => product.title, 
                        :price => @product_price, 
                        :img_small => @images[0], 
                        :img_big => @images[1], 
                        :category =>  product.product_group, 
                        :link => "http://amazon.com/" )
        @custom_response << @new_response
end

1 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情: -

@new_response = OpenStruct.new(:source => "amazon", :link => ".....")

@new_response.id = product.asin if product.asin.present? 
@new_response.title = product.title if product.title.present?
other attributes....