Railsで使用されている=(イコール)の記号の使い方について教えてください。

投稿者: Anonymous

Rails初心者ですが下記のようなviewファイルがあり、
ソースコードのis_selected = @registration.plan == planの記号で困惑してます。

これはまず右辺を@registration.planとplanが等しいかどうか計算して、
値が等しい場合の左辺のis_selectedに代入するというような意味合いでしょうか?

ちなみに=の記号が代入、==の記号が等しいと認識しております。

viewファイル

<% is_selected = @registration.plan == plan %>

解決

結論から言うと is_selected には truefalse のいづれかの値が入ります。
等しければ true、異なれば false です。
先の人も書いていますが優先順位があるので

is_selected = (@registration.plan == plan)

と同じだと考えれば分かりやすいと思います。

最終的には is_selected を求めているので、これは名前からしても
「選択されているのか?否か?」を保持したいのだと思います。

例えばそのソースコードの後の方で

if is_selected
  # ...選択されている場合の処理
end

と書いてもいいですし、変数を使わずに

if @registration.plan == plan
  # ...選択されている場合の処理
end

と書いても同じ意味になります。

参考: https://docs.ruby-lang.org/ja/latest/class/Object.html#I_–3D–3D

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *