Open3

ReactからRailsにStrong Parametersを渡す際の実装

Dai KawaiDai Kawai

RailsのStrong Parameterとは?

  • Railsでform_forすると、こんな形式で渡している
{
   "utf8": "✔︎", 
   "authencity_token": "", 
   "post": {title: "hoge", description: "fuga"}, 
   "commit": "投稿しました"
}
  • これをcontroller側で、以下のように受け取る
class PostsController < ApplicationController

   def create
      @post = Post.new(post_params)
       if @post.save 
           redirect_to post_path(@post)
      end
   end

   private 

   def post_params
      params.require(:post).permit(:title, :description)
   end

end
  • 上記post_paramsで実装している部分がstrong parameters
  • strong parametersでは、requirepermitを利用して、取得できる値を制限する
    • require: hashで受け取るkeyを指定
    • permit: hashで受け取るvalueの指定
  • パラメーターで見ると、以下のようになる
{
   "utf8": "✔︎", 
   "authencity_token": "", 
   "post": #keyにあたる部分
       {title: "hoge", description: "fuga"},  #valueにあたる部分
   "commit": "投稿しました"
}
Dai KawaiDai Kawai

React側の実装

  • axiosで実装する
const params = {title: "hoge", description: "fuga"}
    axios
      .post(API_ENDPOINT, {post:params})
      .then((response) => {
        alert('投稿を追加しました')
      })