从json获取数据时未定义的方法

时间:2014-10-16 08:36:47

标签: ruby-on-rails ruby yelp

我尝试使用Yelp-Ruby gem搜索Yelp API。虽然我在获取结果方面取得了一些成功,但有时候会出现这样的错误:

的未定义方法`image_url'

我认为返回的JSON没有image_url或image_url = nil。但我不知道如何解决它(我是铁杆新手)。

这是我的搜索控制器:

def search
  parameters = { term: params[:term], limit: 10}
  @response = Yelp.client.search('Melbourne', parameters)
render 'location_search/new' 

相应的结果视图:

<% @response.businesses.each do |business| %>
<div class="large-6 columns">
    <p><%= image_tag business.image_url %>
    <p style='color: white'><%= business.name %>
        <p style='color: white'><% business.categories.each do |category, name| %>
                                <%= name %> , 
                                <% end %>
    <p style='color: white'><%= business.rating %>
    <p style='color: white'><%= image_tag business.rating_img_url %>
</div>
<% end %>

谢谢,

1 个答案:

答案 0 :(得分:1)

Vuong,尝试使用respond_to方法检查是否确实存在业务方法/属性image_url。像这样:

<% if business.respond_to?(:image_url) %>
  <p><%= image_tag business.image_url %></p>
<% end %>

在这种情况下,仅当对象确实具有image_url方法/属性时才会显示图像。