今日お仕事で出した ActionArgs をもちいたコントローラに対するリファクタリングの code snippet となる。当然コードは改変しているが意図としては以下のようなものとなる。
class MusicsController < ApplicationController + permits :title, :artist, :genre def index end - def create - @music = Music.new(music_params) + def create(music) + @music = Music.new(music) end - - private - - def music_params - params.require(:music).permit(:title, :artist, :genre) - end end
Rails の scaffold なんかで作ったコントローラで、StrongParameters まわりが private
メソッドに切り出されているベタな形のコードが、ActionArgs の permits
をもちいることで宣言的記述に置き換えたシュッとしたコードになる。何ヶ月か前に amatsuda に教えてもらった書き方。
cf. https://github.com/asakusarb/action_args#strongparameters---permit