POST
ログイン等の個人情報を含むデータをやり取りする場合に使う。
例えば、ユーザー登録処理のURL例
1 |
/users |
実装方法
formのパラメータを使って渡す方法(POST)
GETの後述する「パスパラメータ」、「クエリパラメータ」に対してPOSTのBODY部にJSONを含む「リクエストパラメータ」という呼び方をします。
GET
ブログの記事IDだったり、商品の商品IDだったり第三者に知られても問題ないIDを渡す場合に使われます。GETパラメータには下記2種類がありますが、下記のような違いがあります。(どちらもPOSTの時のようにStrongParameterの扱いはされません。)
パスパラメータを使って渡す場合のURL
特定のリソースを識別するための一意な値になる項目はこれを使います。
1 |
/users/1000 |
コントローラーやビューファイルなどでは以下のように取得できます。
1 |
@id = params[:id] |
クエリパラメータを使って渡す場合のURL
省略しても問題なく画面遷移ができる項目はこれを使います。クエリを使って渡す場合は特にルーティングの設定が必要ないようです。
1 |
/users/new?id=1001 |
コントローラーやビューファイルなどでは以下のように取得できます。
1 |
@id = params[:id] |
また、クエリパラメーター名が「num」とかであれば
1 |
@num = params[:num] |
上記のようにクエリパラメーター名を変更すれば取得できます。
リダイレクト
1 |
redirect_to action: index, params:{'id' => '111'} |
上記のようにすればリダイレクト時でも同様にクエリパラメータを渡すことが可能です。
実装方法
link_toを使って渡す方法(クエリ)
ルーティングのパスに下記のようにしてパラメータを追加します。
1 |
<%= link_to 'New User', new_user_path(id:1001) %> |
ストロングパラメータ(送られてきたパラメータを安全に扱うRailsの仕組みです。)で許可するためにidを追加します。
1 |
params.require(:user).permit(:name,:id) #「:id」を追加する。 |
そうすることで、プログラム内で下記のように指定するだけでviewで定義したパラメータを受けることができるようになります。
1 |
params[:id] |
この記事へのコメントはありません。