Приложение Rails имеет проблемы с сохранением между моделями
Я работаю над приложением, которое загружает мета-теги с веб-сайтов и затем сохраняет их. Загрузка происходит в модели под названиемSite
, Я хотел бы сохранить загруженные метатеги роботов в модель под названиемrobots_tag
который подключен к сайтам через таблицу соединенийmeta_tag_sites
.
Но способ, который я написал в модели сайтов для этого, не работает. Когда я пытаюсь вызвать метод в консоли, я получаю следующую ошибку.
undefined method `robots_meta=' for []:ActiveRecord::Relation
Есть идеи, что я делаю не так?
class Site < ActiveRecord::Base
attr_accessible :domain
belongs_to :user
has_many :meta_tag_sites
has_many :robots_tags, through: :meta_tag_sites
accepts_nested_attributes_for :robots_tags
# ...
def download_robots_meta_tags
robots_tags = Nokogiri::HTML(Net::HTTP.get(self.domain, "/")).xpath("//meta[@name='robots']")
robots_tags.each do |tag|
self.robots_tags.robots_meta = tag
end
end
# ...
end
class RobotsTag < ActiveRecord::Base
attr_accessible :robots_meta
has_many :meta_tag_sites
has_many :sites, through: :meta_tag_sites
end
class MetaTagSite < ActiveRecord::Base
attr_accessible :site_id, :meta_tag_id
belongs_to :site
belongs_to :robots_tag
end
(Кстати, этот пост связан с более ранним постом:Web-приложение Rails становится слишком модельным?).