Я пытаюсь использовать консоль Rails для повторения всех моделей Ad
. Я хочу, чтобы каждое объявление, чтобы выполнить собственный метод extract_targets
:Rails NoMethodError: частный метод для частного метода?
Ad.all.each do |ad|
ad.extract_targets
end
Хотя, когда я получаю следующее сообщение об ошибке во время цикла:
NoMethodError: private method `extract_targets' called for #<Ad:0x000000071123b0>
Это частный метод, но я звоню его от каждого из поэтому я не знаю, почему это вызывает исключение?
private
def extract_targets
normal_name = campaign.name.sub(/^www\./, '')
links = page.css('a').map { |link| URI(link['href']) }.select {|link| link.host.sub(/^www\./, '').end_with? normal_name }
location = links.first.path
location = '/' if location.empty?
location.normalize_path!
update_column :target_id, campaign.targets.find_or_create_by(location: location).id
end
Закрытый метод может вызываться только внутри класса –
@DeepakMahakale: и даже тогда, не всегда. –