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

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

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

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

Ruby on Rails

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

3回答

629閲覧

リファレンス記載のcheck_boxの第3引数の括弧の意味と使い方を教えてください。

Yoshi25

総合スコア7

Ruby

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

Ruby on Rails

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2019/07/25 10:58

前提・実現したいこと

初心者です。
RubyとRailsでアプリを作っています。
知りたいことはタイトルの通りで、リファレンスに書かれている
check_boxのプロパティ名の直後の[]括弧の意味とその使い方がわからないので教えて頂きたいです。

課題

以下の記事を参考にしました。
https://qiita.com/tanutanu/items/b86c4adc26ae464c71fd

①リファレンスでは以下のように使い方が記載されているようです。

check_box(オブジェクト名, プロパティ名 [, オプション, checked_value = "1", unchecked_value = "0"])

②使い方の例は以下のようになっています。

= check_box :group, :user_ids, {class: "check_box"}, true, false

気になる部分

リファレンスでは第2引数の直後に角括弧[]があり、角括弧内が","で始まり、続けてchecked_valueとunchecked_valueがあります。

使い方の例では、第3引数波括弧{}になっており、そのにオプション(class: "check_box")が記述され、波括弧はそこで終了しています。
その直後にtrueとfalseがあり、これは直感的に第4、第5引数だということはなんとなく理解できます。

ぼやっとした質問

上記を踏まえていくつか質問があります。
大きくいうと,

リファレンスに記載されている角括弧[]が何を表しているのかが知りたいです。

自分の認識では

自分の認識としてはオプションだからつけてもつけなくても大丈夫ですよ、ということを表しているただの飾りとしての角括弧なのかなと考えています。ただ、それが正しいのかを知る方法が見つけられません。

少し細かい質問

認識が正しくないとすると、Rubyでは角括弧は[]は配列を表していると学んだので、それに則った場合、

1, リファレンスに記載されている角括弧[]は配列で、角括弧の中を全て合わせて1つの引数(上記の例だと第3引数)としているのでしょうか?
2, 上記1の質問が正しい場合、そうなると最初の","が理解できません。何者なのでしょうか?

実際の使い方では角括弧[]は使わずに波括弧{}だけでを使っており、後ろに続くtrueとfalseは括弧内に含まれていません。
リファレンスではオプションの直後に続くtrueとfalseもまとめて角括弧[]の中に含まれています。

3, これは何が違うのでしょうか?

雑な質問で申し訳ありません。一応これで全力です。
どなたか教えていただけると大変助かります。よろしくお願いいたします。

また、こういった類のものを調べる良い方法があればぜひ教えていただけますと幸いです。

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

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

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

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

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

guest

回答3

0

ベストアンサー

リファレンスやヘルプででてくる関数やオプションの使用法の記法ですが、
BNF記法というのが元になってます

バッカス・ナウア記法

上記の、派生の項目を読んでみれば、だいたいわかるとおもいます

もともと言語の定義を書くのに使っていたものが、時を経て、省略に省略を重ね、こういうところに生き残っているんですねー

投稿2019/07/25 11:48

y_waiwai

総合スコア87719

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

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

Yoshi25

2019/07/26 05:13

歴史が関わっていたのですね・・・! ご丁寧に起源まで教えていただきありがとうございます! 助かりました。
guest

0

[ ] は第3引数ではないです
check_box :group, :user_ids
check_box :group, :user_ids, {class: "check_box"}
check_box :group, :user_ids, {class: "check_box"}, true
check_box :group, :user_ids, {class: "check_box"}, true, false

のどの形式でも良いよ、という意味です。

但し、
これらが全部同じ結果になるわけではないです。
下から2番めは

check_box :group, :user_ids, {class: "check_box"}, true, "0"

という意味になります。unchecked_value = "0" となっているので省略時は "0"です。

投稿2019/07/25 13:49

winterboum

総合スコア23284

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

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

Yoshi25

2019/07/26 05:14

使い方まで教えていただきありがとうございます! これで迷わずリファレンス読めます!(嬉泣)
guest

0

自分の認識としてはオプションだからつけてもつけなくても大丈夫ですよ、ということを表しているただの飾りとしての角括弧なのかなと考えています。

そうです。

投稿2019/07/25 11:15

thyda.eiqau

総合スコア2982

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

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

Yoshi25

2019/07/26 05:11

解決できました!ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問