Die Rails-App hat Probleme beim Speichern zwischen Modellen
Ich arbeite an einer App, die Metatags von Websites herunterlädt und dann speichert. Das Herunterladen erfolgt in einem Modell namensSite
. Ich möchte die heruntergeladenen Robots-Meta-Tags in einem Modell namens speichernrobots_tag
die mit Sites über eine Join-Tabelle namens verbunden istmeta_tag_sites
.
Aber die Methode, die ich in das Websitemodell geschrieben habe, um dies zu tun, funktioniert nicht. Wenn ich versuche, die Methode in der Konsole aufzurufen, wird die folgende Fehlermeldung angezeigt.
undefinierte Methode `robots_meta = 'für []: ActiveRecord :: Relation
Irgendeine Idee, was ich falsch mache?
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
(Übrigens, dieser Beitrag bezieht sich auf einen früheren Beitrag:Web-Scraping Rails App Übermodelliert?).