:(コロン)と,(カンマ)
コロンとカンマ、rubyの記述の中にかなり出てくるが、文字の右についたり左についたりとどんな法則でついているのだろうか。
調べてみた限りではこんな感じだ。
<コロン>
①シンボルとして記述される
"name"はシンボルにすると :name
またハッシュの記述でnameをキーとすると
{ :name => "Taro"} は {name: Taro} と記載される
シンボルは使う場面で文字の右左と場所が変わる。
ちなみにわかりにくいが
params.require(:room).permit(:name, user_ids: [])
の :room もroom というキーを指している
②メソッドの後にはつかない。
例えばコントローラーのピンクのbefor_actionメソッドやモデルでのアソシエーションのメソッドには付かず、黄色のconfigure_permitted_parameters, devise_controller? メソッドでは前に付いている
before_action :configure_permitted_parameters, if: :devise_controller?
belongs_to :user
③オプションの後ろに着く
例えば if や model ,locla などのオプション
before_action :configure_permitted_parameters, if: :devise_controller?
<%= form_with model: current_user, local: true do |f|%>
belongs_to :user
validates :content
これに関してはよくわからなかったので推察してみた。
上記の記述がmessage.rb というMessageモデルに記述されているとする。
アソシエーションでは :user は Messageモデル 対 Userモデル
バリデーションでは :content は Messageモデル 対 contentカラム
のようにメソッドの後ろに記述しているものは△△対〇〇の関係性のがあることを示すためコロンをつけている。
ここまで考えてコロンなんて使っていないだろうけれど気になる。
<カンマ>
これは application.html.erb の記述の一部
<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/3.18.1/build/cssreset/cssreset-min.css">
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
おそらくHTMLの記述だとカンマは使用せず、Rubyの記述だとカンマが必要という認識だと思う。
というという訳で考察終わり。
今日も頑張ろう。
===>後書き
⑤についてはRailsのメソッドにはシンボルを渡すメソッドがあるということらしい。
つまり、シンボルというのはただの文字列をコロンをつけて記述したものではないということ。次はシンボルについて調べてみようかな