2017-03-15 69 views
0

我有以下型號分配模型的屬性值,例如方法參數

class myclass 
    def mymethod(a, b, c, d = 'e') 
    StoredProcedure::Test.exec!(
     a, b ,c ,d) 
    end 
end 

我有屬性模型提供F公司價值,但不知道我怎麼可以將其指定參數b。 我試過做def baz(a, b = f, c, d = 'e'),但不工作。 我如何將f的值賦給模型中的參數b?

+0

'類MYCLASS 高清的MyMethod(一,b,c,d ='e') b = f StoredProcedure :: Test.exec!( a,b,c,d) end end' –

回答

0

我認爲最好的辦法是集合B到零,則在該方法分配它,如果用戶沒有指定的參數:

class myclass 
    def mymethod(a, c, b = nil, d = 'e') 
    b ||= f 
    StoredProcedure::Test.exec!(a, b, c, d) 
    end 
end 

另外請注意,我重新排序的參數。可選參數必須在需要的參數之後。

當然,如果你希望B爲f所有的時間,不要指望用戶覆蓋它,你應該得到完全擺脫它:

class myclass 
    def mymethod(a, c, d = 'e') 
    StoredProcedure::Test.exec!(a, f, c, d) 
    end 
end 
相關問題