:(コロン)と,(カンマ)

コロンとカンマ、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|%>
 
 
④アクション名の前につく
 
resources :users, only: :show
<%= link_to '削除', tweet_path(tweet.id), method: :delete %>
 
 
 
⑤△△ 対 〇〇 の関係性の場合は前につく?
 
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のメソッドにはシンボルを渡すメソッドがあるということらしい。

つまり、シンボルというのはただの文字列をコロンをつけて記述したものではないということ。次はシンボルについて調べてみようかな