まずViewです。
ruby
1 <% %i(index of_today).each do |action| %> 2 <li class='nav-item'> 3 <%= plan_items_nav_link(action) %> 4 </li> 5 <% end %>
問題の関数のヘルパーです。
ruby
1 ACTION_LABEL_MAP = { 2 index: '予定表', 3 of_today: '今日の予定表' 4 } 5 6 def plan_items_nav_link(action) 7 label = ACTION_LABEL_MAP[action] 8 url = (action == :index ? :plan_items : [ action, :plan_items ]) 9 10 link_to label, url, class: html_classes.join(' ') 11 end
この関数plan_items_nav_linkの中の
ruby
1 url = (action == :index ? :plan_items : [ action, :plan_items ])
この行が何をしているか教えていただけますか?
この関数は、link_to メソッドを返し、ここでは、そのurlを決定しています。
3項演算子はわかります。
url には
action == :index が条件
それが真のときは、
:plan_items
を代入
そうでないときは(偽の時)
** : [ action, :plan_items ])**
を代入。
####この偽のときの配列を渡している理由がわかりません。??
plan_itemsコントローラなので
真の時
:plan_items
を渡すのはわかります。
####アドレス。-画面はこうなります。予定表ボタンが押されてリンク先に遷移しています。
####偽のときは
そもそもactionは引数。
####:plan_itemsはどこから来たハッシュ?の値なのか?
routesファイルです。
ruby
1 resources :plan_items do 2 get :of_today, on: :collection 3 end
ネストしています。
すみませんが、よろしくおねがいします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/10 03:50