備忘録 パスやらハッシュやら etc. の記載について

##**`:user`** &emsp; &nbsp; #シンボル, アクション
>[routes.rb]

>>- [ ] resources **:photos**, **:books**, **:videos**&ensp;&emsp;#シンボル
>- [ ] resources **:users**, only: [**:show**]&ensp;&emsp;#usersシンボルと showアクション
>- [ ] resources **:strong**>notes, only: [**:show**, **:create**, **:edit**, **:update**, **:destroy**] do&ensp;&emsp;
>- [ ] /unlike/**:note_id**

>/models/[user.rb]

>>- [ ] belongs_to **:user**&ensp;&emsp;#シンボル
>- [ ] has_many **:like_notes**, through: **:likes**, source: **:note**&ensp;&emsp;#シンボル

>[xxx_controller.rb]

>>- [ ] **:user_id**&ensp;&emsp;#パス
>- [ ] before_action **:set_user**, only: [**:**show, **:edit**, **:update**, **:like_notes**]&ensp;&emsp;#シンボル
>- [ ] @project = Project.find(params[**:id**])  
&ensp;#URLで飛んできた数値は paramsで取得できる。  
&ensp;[]内は、シンボル含め `rake routes`　→ URI Patternにある記載通り。
>- [ ] params[**:project**].permit(**:title**)  
&ensp;「 paramsの中の projectで渡ってきた中の物のうち titleだけを取得。」

>[201703xxx_xxx_xxx.rb]

>>- [ ] t.integer **:user_id**&ensp;&emsp;#シンボル
>- [ ] params.permit(**:text**, **:tweet_id**)&ensp;&emsp;#シンボル

>[xxx.rb]
>>- [ ] data: { turbolinks: { track: true }}  
&ensp;シンボル型のキーにハイフンが入っているとまずい。  
&ensp;X : `data-turbolinks-track: true`

##**`:user =>`** &nbsp;, **`user:`** &nbsp;&nbsp; #データ型, ハッシュ, キー 
>>- [ ] [vagrant@localhost myapp]$ rails generate scaffold User **name:**string **score:**integer  
&ensp;#型指定する scaffoldコマンド。
 
>[xxx.rb]
>>- [ ] langueges = { **English:** "5億1000万", **Russian:** 180000000, **日本語:** 125000000 }  

>>---
- [ ] `p langueges[:English]` &emsp;&emsp;#値の呼出
- [ ] `langueges[:English] = 510000000` &emsp;&emsp;#値の書換
- [ ] `p langueges.size` &emsp;&emsp;#キーと値のセットの数
- [ ] `p langueges.keys` &emsp;&emsp;#全キー呼出
- [ ] `p langueges.values` &emsp;&emsp;#全値の呼出
- [ ] `p langueges.has_key?(:English)` &emsp;&emsp;#キー存在確認

>>---
>>- [ ] langueges = {**:English =>** "5億1000万", **:Russian =>** 180000000, **:日本語 =>** 125000000 }  
>>- [ ] langueges = { **"English" =>** "5億1000万", **"Russian" =>** 180000000, **"日本語" =>** 125000000 }

>>---
>>- [ ] Tweet.where(**user_id:** user.id)) &ensp;&emsp;#association定義後のハッシュ


>[routes.rb]
>>- [ ] delete /unlike/**:note_id =>** 'likes#unlike', as: 'unlike'  
&ensp;#URL(`DELETE /xxxs/:note_id`) を likesコントローラの unlikeアクションに割振り、params{note_id: ○} を生成。

>[unlike.js.erb]
>>- [ ] $('#like-link').html('<%= escape_javascript(render("likes/like_links", **note:** @note)) %>');  
&ensp;#変数note に @note を渡す。

>[ViewController.swift]
>>- [ ] **let text:** String = textField.text!


##**`_`**, **`.`** の表現
>[likes_controller.rb]

>>- [ ] current_user.likes.build(**note_id**: **note.id**)  
> &ensp;note_id はカラム名。ログインユーザーに紐付いた likesテーブルから likeインスタンスを取得。
>- [ ] **current_user.id** &ensp;&emsp;#ログイン中のユーザーの id
>- [ ] **article_**path(article)&ensp;&emsp;#アクションへのリンク、()内は id
>- [ ] **like.**save&ensp;&emsp;#Likeインスタンスを保存

>[index.html.erb]

>>- [ ] <% = link_to '詳細', "**/tweets/#** => {tweet.id}", method: :get %>  
> &ensp;'詳細'ボタンを getとし、該当idからデータを表示。
>- [ ] <%= link_to '@note.likes.count', **liking_users_note_**path(**@note.id**) %>  
> &ensp;送信先 URL(`rake routes`　→`Prefix`+`_path`で`URI Pattern`に変換)の引数に
 @noteの idを指定。
>- [ ] <%= link_to "[Edit]", edit_project_path(**project.id**), style: "font-family:cursive;" %>  
> &ensp;送信先URL edit_project_path の引数に projectの idを指定。

>[ _note.html.erb]
>>- [ ] <%= **note**.likes.count %>人が〜  
&ensp;&emsp;#投稿一覧画面。投稿がユーザーにいいね！されている数。インスタンス変数名に@なし。


##**`@note`** &nbsp; &emsp; #インスタンス変数, パーシャル呼出
>[xxx_controller.rb]
>>- [ ] @task = **@project**.tasks.create(task_params)　  
&ensp;&emsp;#project情報をもとにtaskを作る。
>>- [ ] @users = **@note.**liking_users　  
&ensp;&emsp;#`@note`のゲッターを用いて`liking_users`を取得し、変数`@users`に代入。

>[xxx.html.erb]
>>- [ ] **@note**  
&ensp;&emsp;#note_path(`@note`)と解釈される。`note_path` の省略形。
>- [ ] **@user.**notes  
&ensp;&emsp;#あるユーザー`@user`が作成した全投稿 (Note)を取得。
>- [ ] <%= render **@users** %>  
&ensp;&emsp;#パーシャルファイル _user.html.erb 呼出。
>- [ ] note_path(@note)&ensp;&emsp;#=> note_path(**@note.id**)
>- [ ] <%= **@user.**likes.count %>個の投稿に 〜  
&ensp;&emsp;#ユーザーが投稿をいいね！している数
>- [ ] <%= **@note.**likes.count %>人が〜  
&ensp;&emsp;#投稿詳細画面　　投稿がユーザーにいいね！されている数
>- [ ] <%= link_to 'いいね！を取り消す', unlike_path(**@note.id**), method: :delete %>  
&ensp;&emsp;#アクションへのリンク、()内は id
>- [ ] like = current_user.likes.find_by(note_id: **@note.id**)  
&ensp;&emsp;#ログインユーザーに紐付いた likesテーブルから likeインスタンスを取得。

##**ネスト**した連想配列から呼出す書き方
>```php:
><?php
>$menus = array(
>  array('name' => 'CURRY', 'price' => 900),　　　#arrayを$menuにするとエラー
>  array('name' => 'PASTA', 'price' => 1200),
>  array('name' => 'COFFEE', 'price' => 600)
>);
>foreach ($menus as $menu) {
>  echo $menu['name'].'は'.$menu['price'].'円です'.'<br>';
>}
>?>


```ruby:xxx.rb
"." = "/"    #=> ディレクトリ指示子
```
```ruby:routes.rb
  get "/" => "projects#index"
  root "projects#index"    #=> 上行と同じ意味。
```
```ruby:rake_routes
(.:format)    #=> formatオプション　html形式やjson形式等複数の形式で出力できる
```
---
&emsp;学習過程で随時更新。