Ruby 2.1.1 では、次のメソッドを定義しました。
def post(url, params={}, send_json: false, success_only: true)
privateToken
これは、次のように別のメソッドの同じオブジェクト内で呼び出されます。
self.post("#{@url}/api/v3/session", {
:login => @user,
:password => @pass,
})['private_token']
ただし、このオブジェクトを呼び出すprivateToken
と、次のようになります。initialize
<script>:207:in `privateToken': unknown keywords: login, password (ArgumentError)
from <script>:199:in `initialize'
from <script>:575:in `new'
from <script>:575:in `<main>'
メソッドをキーワード引数としてpost
受け入れるように変更すると、このエラーは回避されます。params
def post(url, params: {}, send_json: false, success_only: true)
# ..then in method 'privateToken':
self.post("#{@url}/api/v3/session", params: {
:login => @user,
:password => @pass,
})['private_token']
誰かがなぜこれが起こるのか説明してもらえますか? キーワード引数のドキュメントで、キーワードへのハッシュ拡張についての言及を見たことがありません。そして、私が読んだことから、引数の順序は次のようになるはずです:標準引数、デフォルト引数、キーワード引数。