2016-11-22 4 views
0

たとえば、コントローラから文字列を受け取るモデルのメソッドがあるとします。ブーリアン値を返すモデルの別の場所で呼び出すことができますか?または、変数を設定することによって、より良い方法がありますか?Railsモデルの別のメソッドで引数を指定してメソッドを呼び出す方法

class Object 
    def method_true?(args) 
    ['a', 'b'].include?(args) 
    end 

    def do_stuff 
    method_true? #outcome of method_true? 
    end 
end 
+0

引数が適切であれば、メソッドは正常に動作するはずです。 – titan

+0

あなたはそれを働かせましたか? –

+0

ええ、ありがとう!私はそれほどハッキリしていないし、コントローラーでこれを書きました(最初にあったはずです)。 –

答えて

0

パッチObjectクラスは最適ではありません。

(あなたはどこにでもそれを必要と確信している場合、または、ActiveRecord::Baseに)もっとRailsの方法は、これらの方法でモジュールを作成し、あなたのモデルにそれを混合することになります。

module ActiveRecordExtentions 
    def method_true?(args) 
    ['a', 'b'].include?(args) 
    end 

    def do_stuff 
    method_true? #outcome of method_true? 
    end 
end 

# /initializers/activerecord_extentions.rb 
ActiveRecord::Base.send(:include, ActiveRecordExtentions) # or extend, you decide 

今の方法がすべてで利用できますActiveRecord::Baseから継承するモデル。

関連する問題