próbuję zdefiniować metodę wewnątrz migracji, ale jestem coraz niezdefiniowany błąd metoda:Definiowanie metod w Rails migracje
undefined method 'do_something_specific' for #<ActiveRecord::ConnectionAdapters::SQLite3Adapter:0x4868018>
Wolałbym nie definiują go gdzie indziej, bo nie robi” t naprawdę odnoszą się do reszty aplikacji, tylko do tej konkretnej migracji.
Żeby było jasne, mój migracja wyglądał:
class DoSomethingSpectacular < ActiveRecord::Migration
def self.up
do_something_specific(1, 2)
end
def self.down
end
private
def do_something_specific(p_1, p_2)
# something happens here...
end
end
Am I brakuje czegoś tutaj? Dlaczego nie mogę tego tak zdefiniować?
Tak, nie rozumiałem, jak to było wywoływanie go z adaptera, ale doszedłem do wniosku, że powinno być w jego zasięgu. W każdym razie, teraz otrzymuję błąd nieokreślonej metody "do_something_specific" dla klasy: Class –
D'oh przepraszam. Ponieważ 'self.up' jest samą metodą statyczną, wywołanie' class' zwróci 'Class', a nie' DoSomethingSpectacular'. Zaktualizowałem przykładowy kod. – Koraktor
Myślę, że możesz bezpiecznie usunąć "DoSomethingSpectacular". w self.up – khelll