2014-09-27 66 views
0

我是新來的鐵軌,我做錯了我的模型方法,我想不出。在模型中,它接受來自用戶的URL,然後爲該圖像和標題刮取該URL。一切工作正常,如果我從一些隨機的網站硬編碼的值,但如果我從用戶提交的鏈接的價值,我得到這個錯誤:使用模型方法的Ruby on Rails會破壞我的URI?

Failure/Error: let!(:list_link){FactoryGirl.create(:list_link, list: list)} 
URI::InvalidURIError: 
    bad URI(is not URI?): http://list link 

我最好的猜測是,該方法在變異數據庫數據,我不希望它做。我試圖使用鏈接來生成2個額外的list_link.title和list_link.image屬性。我試過克隆原始鏈接,但這似乎不起作用。

這裏的模型:

class ListLink < ActiveRecord::Base 
belongs_to :list 

validates :link_url, presence: true 
validates :list_id, presence: true 

before_save :set_link 
def set_link 
    self.link_url = link_url 
    link_info = OpenGraph.fetch(link_url.clone) 
    if link_info 
     self.title = link_info.title 
     self.image_url = link_info.image 
    end 
end 

這裏是我廠:

FactoryGirl.define do 
    factory :list_link do 
    link_url "list link" 
    image_url "image" 
    title "title" 
    list 
    end 
end 

感謝您的幫助。

+0

你在哪裏定義了'link_url'? – 2014-09-27 03:18:39

+0

你爲什麼重置'set_link'中的'link_url'?你的工廠看起來像什麼? – 2014-09-27 03:23:25

+0

它是數據庫中的一列。我將鏈接的名稱更改爲link_url,因爲它似乎導致了一些問題 - 不確定這是否是這些問題的原因。我會在上面發佈工廠。 – PaygeVii 2014-09-27 03:23:31

回答

0

沒關係!我解決了它,是插入所有的錯誤,而不是軌道鏈接的插件寶石。感謝您的評論!