8
私は、移行の内側にメソッドを定義しようとしているが、私は未定義のメソッドのエラーを取得しています:の定義方法
undefined method 'do_something_specific' for #<ActiveRecord::ConnectionAdapters::SQLite3Adapter:0x4868018>
それはdoesnのため、私はむしろ、他の場所でそれを定義しないと思います実際には、この特定の移行だけで、アプリケーションの残りの部分に関係しています。
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
私はここで何かが欠け午前:
明確にするために、私の移行は次のように見えますか?なぜこれをこのように定義できないのですか?
ええ、私はそれがアダプタ内から何を呼んでいるのか理解できませんでしたが、それはまだそのスコープ内にあるはずだと思いました。とにかく、クラスのための未定義のメソッド 'do_something_specific'がエラーになりました:クラス –
D'oh申し訳ありません。 'self.up'は静的メソッド自体であるため、' class'の呼び出しは 'DoSomethingSpectacular'ではなく' Class'を返します。私はサンプルコードを更新しました。 – Koraktor
「DoSomethingSpectacular」を安全に削除できると思います。セルフアップで – khelll