LoginSignup
1
0

More than 1 year has passed since last update.

rails require permit メソッドとは

Posted at

結論

データベースに予期せぬ値が入らないように、ユーザーが入力する値を制限するメソッドの一種。

~.rb
params.require(テーブル名).permit(カラム名)
  • require:  〜を要求する
  • permit : 許可を与える

具体例

投稿アプリにて、ユーザーがデータを入力し保存されるまでの順序

ユーザーがフォーム(記入欄)に入力

new.html.erb
 <%= form_with model:@user, url: user_path, method: :post, local: true do |f| %>
<p> 名前 : <%= f.text_field :name %></p>
<%= f.submit "送信" %>
# model:@user  モデルオブジェクトにユーザーが入力したデータがないか判断する
# url: user_path  入力した値をどこに渡すか指定
# method: :post  入力した値がデータベースにない場合→createアクション
# 入力した値がデータベースにある場合→updateアクション
# 入力した値のHTTPメソッドを指定できる
# f.text_field :name 入力した値が nameカラムに入る
# f.submit 送信ボタンが生成されるらしい

値を入力し、送信ボタンを押すと model:@user, url: user_path,method: :postにより

routes.rb
Rails.application.routes.draw do

 post "/users", to: "users#create"

end

と処理され

controller.rb
class UsersController < ApplicationController

 def create
      User.create(user_params)
    end

  private
    def user_params
      params.require(:user).permit(:name)
    end            # ここでユーザーの入力した値がuserの中のnameだけに保存されるように制限がかけられる
end

となる。

かなり複雑ですね。以上です。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0