2014-04-12 131 views
0

我知道我在这里是一个白痴,但我想不出这是如何完成的。我正在创建一个具有特定兴趣的应用,并且正在使用Nokogiri设置的Wikipedia Scrape。我有两个输入:TitleWikipedia,但要在数据模型中使用scrape填充SummaryContent。我想在方法中使用Wikipedia属性作为URL中的变量,但不断收到错误dynamic constant assignment PAGE_URL = "http://en.wikipedia.org/w/i...带有实例变量的变量URL

我认为这些方法应该放在模型中,引用它们在控制器下的Create定义中,但这似乎不起作用。

编辑

我只是试着服用常量出所建议的方法,但我仍然得到一个动态的不断分配错误。我的模型目前看起来像这样:

PAGE_URL1 = "http://en.wikipedia.org/w/index.php?title=" 
PAGE_URL2 = "&printable=yes" 

def get_PAGE_URL 
    PAGE_URL = PAGE_URL1 + self.wikipedia + PAGE_URL2 
end 


def get_page 
    page = Nokogiri::HTML(open(PAGE_URL)) 
end 

def get_summary 
    get_PAGE_URL 
    self.summary = page.css("p")[0].text 
end 

def get_full_page 
    get_PAGE_URL 
    puts page.css('div#content.mw-body div#bodyContent div#mw-content-text.mw-content-ltr p').each do |p| 
     self.content = puts p.text 
    end 
end 

回答

0

常量不能进入方法内部,它们必须在类的直接范围内定义。

编辑:

例如:

class WikiScraper 
    PAGE_URL = "http://www.wikipedia.org/" 

    def scrape 
     page_num = '5' 
     my_url = PAGE_URL + page_num 
    end 

end 
+0

似乎仍然得到同样的错误。 –

+0

您仍然对'PAGE_URL = PAGE_URL1 + self.wikipedia + PAGE_URL2'行有动态分配。任何所有的大写变量都将被视为常量。为了解决这个'PAGE_URL'改为'page_url' –

+0

好点!干杯! –