Я использую драгоценный камень Etsy, который как модуль Listing. У меня также есть соответствующая модель Listing в моем приложении.
Я пытаюсь настроить работника sidekiq для работы с камнем, вызвать некоторые методы и обновить соответствующую строку Listing, но потому что у меня есть include Etsy, чтобы я мог использовать драгоценный камень, rails запутался и думает, что я имею в виду модуль вместо модели.
Вот код:
class ListingWorker
include Sidekiq::Worker
include Etsy
def perform(seller, shop)
access_token = {access_token: seller.oauth_token,
access_secret: seller.request_secret}
myself = Etsy.myself(access_token[:access_token], access_token[:access_secret])
limit = 100
offset = 0
total_results = myself.shop.active_listings_count
until offset > total_results
listings = Etsy::Request.get("/shops/#{shop.shop_id}/listings/active",
access_token.merge(limit: limit.to_s,
offset: offset.to_s,
include_private: 'true',
includes: 'Images:1:0'))
.to_hash
offset += limit
listings['results'].each do |l|
listing = Listing.find_by(listing_id: l['listing_id'])
end end
Вот ошибка, которую я получаю:
undefined method `find_by' for Etsy::Listing:Class
Как я могу различать модуль и модель и понимать рельсы, я имею в виду таблицу db?
Спасибо заранее!