2016-03-28 19 views
1

Ich erhalte einen Fehler, wenn ich versuche, eine Methode in meinem Controller aufzurufen. Nach Tutorials, wie man das zur Arbeit bringt, aber nur ein bisschen im Schlamm stecken bleibt und Hilfe braucht.Nicht definierte Methode im Controller

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

Mein Modell

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 

Mein Controller

class CatalogController < ApplicationController 


    def index 
     @images = Feed.art 
    end 


end 

Ich vermute, es ist etwas ziemlich einfach ist zu vergessen, ich bin.

Antwort

2

def art definiert eine Instanzmethode, keine Klassenmethode.

Sie haben zwei Möglichkeiten, dieses Problem zu beheben:

1) Machen Sie das Verfahren zur Herstellung einer Klassenmethode von self. die Definition hinzugefügt:

def self.art 
    # ... 

2) oder eine Feed Instanz in Ihrem Controller erstellen, bevor Rufen art:

def index 
    @images = Feed.new.art 
end 
Verwandte Themen