2014-04-12 176 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

好點!乾杯! –