我是rails的新手,我的模型方法做错了,我无法弄明白。在模型中,它接受来自用户的URL,然后为该图像和标题抓取该URL。如果我从一些随机网站硬编码值,一切正常,但如果我从用户提交的链接中获取值,我会收到此错误:
Failure/Error: let!(:list_link){FactoryGirl.create(:list_link, list: list)}
URI::InvalidURIError:
bad URI(is not URI?): http://list link
我最好的猜测是该方法正在改变数据库数据,我不希望它这样做。我正在尝试使用该链接生成list_link.title和list_link.image的2个额外属性。我已经尝试克隆原始链接,但这似乎不起作用。
以下是模型:
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 :(得分:0)
没关系!我解决了它,是插件宝石抛出所有错误,而不是rails链接。感谢您的评论!