0
我在app/services ...自定義文件夾中創建了一個名爲TitleParser的服務文件。該文件稱爲titleparser.rb在rails中命名約定。爲什麼我的服務文件不在應用程序文件夾中?
class TitleParser
attr_reader :connection
def initialize(orig_url)
@connection = Faraday.new(orig_url)
end
def obtain_title
response = parse(connection.get)
require 'pry' ; binding.pry
end
private
def parse(response)
JSON.parse(response.body)
end
end
在我的模型,我在app /型號我有一個叫鏈路模型調用它。
class Link < ActiveRecord::Base
before_create :shorten_url
before_create :set_defaults
def shorten_url
self.short_url = "bit.ly-remix/" + SecureRandom.urlsafe_base64(6)
end
def set_defaults
self.clicks = 0 if clicks.blank?
self.title = TitleParser.new(orig_url).obtain_title
end
end
我得到一個未定義的鏈接:: TitleParser了幾個小時,直到我重命名的文件中的服務title_parser.rb。這裏發生了什麼?這是什麼傳統的規則?
文件這將是一個很好的參考,雖然沒有明確說明'應用程序/ services'目錄:[紅寶石和Rails命名約定](http://itsignals.cascadia.com.au/?p=7) – vee 2015-03-31 01:08:48