Нужно вызвать self.method в другом методе с ruby - PullRequest
2 голосов
/ 07 ноября 2019

app / models / product.rb

    class Product < ApplicationRecord
      def methode1.1
        # Do something
      end
      def method1
        # Do something
        methode1.1
      end
      def self.method2
        # Do something
        method1
      end
    end

в контроллере

def Method_4
  # Do something
  Product.method2
  # Do something
end

Я звоню method2 с контроллера. Когда я запускаю программу. Я получил ошибку:

undefined local variable or method methode1 '' for class

1 Ответ

1 голос
/ 07 ноября 2019

Вы вызываете метод класса Product.method2, и он пытается вызвать метод экземпляра method1. Для этого вам нужно найти или инициализировать экземпляр модели, например:

  # initialize
  def self.method2
    # Do something
    new.method1
  end

или

  # find
  def self.method2
    # Do something
    find_by(attr1: val1, attr2: val2).method1
  end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...