使用模型方法的Ruby on Rails打破了我的URI?

时间:2014-09-27 02:57:16

标签: ruby-on-rails

我是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

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

没关系!我解决了它,是插件宝石抛出所有错误,而不是rails链接。感谢您的评论!