【rails】postしたパラメータをDBへ登録する時に心がけたい書き方
現在、弊社では新規にrailsアプリを作っています。
その際に実装したことを備忘録として残しておきたいと思います。
やりたいこと:
view側で渡したHash化されたパラメータを登録する
→登録内容は「:name,:detail,:status,:start_at, :end_at」
g08m11_tasks.controller.rb
def create @g08m11_task = G08m11Task.new(g08m11_task_params) @g08m11_task.user = current_user respond_to do |format| if @g08m11_task.save format.html { redirect_to g08m11_task_path, notice: t("messages.complete", action: t(["titles", controller_name, action_name].join("."))) } else format.html { render action: 'new' } format.json { render json: @g08m11_task.errors, status: :unprocessable_entity } end end end
private def g08m11_task_params return Hash.new unless params.key?(:user_task) params.require(:user_task).permit(:name,:detail,:status,:start_at, :end_at,{:permission_ids=>[]}) end
覚えたい書き方はcreateする前にインスタンス生成の引数で
「g08m11_task_params」を指定して
そこに取得したパラメータを設定するということです。
他のソースを見てみると
red mine(https://github.com/redmine/redmine)は
引数にそのままparamsを指定する書き方にしていました。
特定のIDだけだからかもだけど二つ以上指定する場合は
privateメソッドとして作成して
実装していきます。
個人的な音楽:
最近やけにはまってます。
「自分の限界がどこまでかを知るために僕は生きてる訳じゃない。」ってフレーズが好きです。