0

/lib/多くのアクションを持つフォルダーの下に、さまざまなクラスがあります。

オブジェクトを保存する前に、その名前がオブジェクト内の属性と一致するクラスからメソッドを呼び出す必要があります。つまり、これが与えられます

User.gateway = "something"

オブジェクトを保存する前に、クラスmyfunctionから呼び出す必要があります。something

これを行う方法がわからない。

4

2 に答える 2

1

定数化と分類があなたのために仕事をします。あなたが持っていると仮定します:

class Foo
end

そして"foo"文字列。できるよ:

"foo".classify.constantize.new.myfunction
于 2012-06-02T16:55:24.323 に答える
1

あなたの質問はかなりあいまいです、これはあなたが必要とするものですか?

# user.rb
before_save :myfunction

protected

def myfunction
   g = self.gateway
   case g 
   when String | Symbol 
     begin
       g.classify.constantize.myfunction
     rescue NameError
       # if there is no something class
     end
   else
     # no good value
   end
end

    enter code here
于 2012-06-02T16:55:47.637 に答える