質問: お世話になります。 自分は元々、Javaソフトの保守をやっていました。 現在、Ruby on Rails を使って、開発に取り組んでおります。 メソッド引数において、ハッシュを用いた可変長的なオプションの指定が、Railsの特徴の1つと思っています。 この「オプション」のうち、指定できるもの(指定を想定されているもの)を、何らかの形で一覧表示するようなことは可能でしょうか。 リファレンスなどから読み解くか、ソースコードを追うしか無いでしょうか。 もし指定オプションの名前が間違っていても、エラーも出ず、原因調査に時間がかかってしまいます。 皆様の知識をお借りいただけますと幸いです。 ### 補足(質問の経緯) 現状解決している悩みですが、上記の相談に至った経緯はざっくり以下のような感じです。 * 現状動いているDBに、commentを含むカラム追加が必要になった。 * 新たにmigrationファイルを出力した。 * add_column というメソッドが生成されたが、commentの追加方法がわからない。 * ネット上で検索をしてみたが、先人の知恵が見つからない。 * ソースコードをざっくり見てみたところ、comment を含む定義が見つかった。 * ただ、明確な指定方法がわからなかった。 * 末尾に comment: "***" を単純に追加したところ、migrationで反映された。
回答: Rubyデフォルトの方法で定義された場合のキーワード付き引数ですと ``` def test hoge:, foo: end p method(:test).parameters # => [[:keyreq, :hoge], [:keyreq, :foo]] ``` が取れるのですが Railsの場合は厳密にはキーワード付き引数をもつメソッドではなく 「末尾の引数がハッシュの場合は`{}`が省略できる」というルールによってキーワード付き引数のように見えるメソッドなので 取得する事ができません。 ドキュメントを精査し、必要に応じてメソッド定義を読むしかありません。