LoginSignup
12
10

More than 5 years have passed since last update.

[rails][gem]action_args、permitsの使い方。

Last updated at Posted at 2015-06-18

form_forとかstrong paramsとか、感覚的に使っている人も多いと思うんですが、
たまに詰まったのでちょっとずつまとめます。
今回はaction_argsというgemfileを用いて、メソッドのparameterの管理についてまとめます。

ActionArgs 公式ドキュメント

StrongParameters - permit

1. 一列で一気に宣言する方法

ハッシュを用いて、簡単にStrongParameterのpermitメソッドを記述できる。

class UsersController < ApplicationControllerCOnt

  def create(user)
    @user = User.new(user.permit(:name, :age))
    ~~~
  end
end

2. ありのままに、ホワイトリストを記述する方法(ブラックリストの反対)

ActionArgsは、controllerのclassに、ありのままのpermitsを記述する機能を提供している。
包括的な方法でpermitsをDRYに書きなさい。

class UsersController < ApplicationController
  permits :name, :age

  def create(user)
    @user = User.new(user)
    ~~~
  end
end

ActionArgsは、ターゲットのモデルの名前をコントローラの名前から推定している。例えば、UsersControllerのpermitsは、モデルの名前をUserだと認識している。 もし、違ったら、オプションで指定することも出来るよ。

class UsersController < ApplicationController
  permits :name, :age, model_name: 'User'

end
12
10
3

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
12
10