2016-03-28 126 views
1

我在嘗試調用控制器中的方法時遇到錯誤。關於如何使這個工作有效的教程,但只是有點卡在泥裏,需要一些幫助。控制器中的未定義方法

NoMethodError in CatalogController#index 
undefined method `art' for #<Class:0x007fbe8c338310> 

我的模型

require 'httparty' 
require 'json' 

class Feed < ActiveRecord::Base 
    include HTTParty 
    base_uri 'https://www.parsehub.com/api/v2/runs' 
    # GET /feeds 
    # GET /feeds.json 
    def art 
    response = self.class.get("/tnZ4F47Do9a7QeDnI6_8EKea/data?&format=json") 
    @elements = response.parsed_response["image"] 
    @parsed = @elements.collect { |e| e['url'] } 
    end 

end 

我控制器

class CatalogController < ApplicationController 


    def index 
     @images = Feed.art 
    end 


end 

我猜測它的東西很簡單,我忘了。

回答

2

def art定義了一個實例方法,而不是一個類方法。

您有兩個選項來解決這個問題:

1)加入self.的定義製作方法的類方法:

def self.art 
    # ... 

2)或之前在你的控制器創建一個Feed實例致電art

def index 
    @images = Feed.new.art 
end 
相關問題