質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

849閲覧

Railsのメソッド引数で、指定オプションの一覧表示は可能でしょうか。

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2019/03/14 05:48

お世話になります。

自分は元々、Javaソフトの保守をやっていました。
現在、Ruby on Rails を使って、開発に取り組んでおります。

メソッド引数において、ハッシュを用いた可変長的なオプションの指定が、Railsの特徴の1つと思っています。
この「オプション」のうち、指定できるもの(指定を想定されているもの)を、何らかの形で一覧表示するようなことは可能でしょうか。
リファレンスなどから読み解くか、ソースコードを追うしか無いでしょうか。

もし指定オプションの名前が間違っていても、エラーも出ず、原因調査に時間がかかってしまいます。
皆様の知識をお借りいただけますと幸いです。

補足(質問の経緯)

現状解決している悩みですが、上記の相談に至った経緯はざっくり以下のような感じです。

  • 現状動いているDBに、commentを含むカラム追加が必要になった。
  • 新たにmigrationファイルを出力した。
  • add_column というメソッドが生成されたが、commentの追加方法がわからない。
  • ネット上で検索をしてみたが、先人の知恵が見つからない。
  • ソースコードをざっくり見てみたところ、comment を含む定義が見つかった。
  • ただ、明確な指定方法がわからなかった。
  • 末尾に comment: "***" を単純に追加したところ、migrationで反映された。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/03/14 14:42

ありがとうございます。 ご提示いただいたページで、:commentなど見れるようですね。 誠に助かります。 日本語のページだと見つからなくて、 やっぱりRailsでは特に、英語嫌悪せず立ち向かう必要がある感じですね・・・
guest

回答1

0

ベストアンサー

Rubyデフォルトの方法で定義された場合のキーワード付き引数ですと

rb

1def test hoge:, foo: 2end 3 4p method(:test).parameters 5# => [[:keyreq, :hoge], [:keyreq, :foo]]

が取れるのですが

Railsの場合は厳密にはキーワード付き引数をもつメソッドではなく
「末尾の引数がハッシュの場合は{}が省略できる」というルールによってキーワード付き引数のように見えるメソッドなので
取得する事ができません。

ドキュメントを精査し、必要に応じてメソッド定義を読むしかありません。

投稿2019/03/14 14:29

asm

総合スコア15147

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/03/14 14:40

誠にありがとうございます。 長いこと悩んでいたので、スッキリしました。 コードを追うようにします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問