Rails4のstrong_parameters覚え書き


この記事の所要時間: 139
mass_assignment脆弱性を解決するソリューションです。
もうじき正式リリースを待つばかりです。
覚え書き的な。

基本

Post.new(params[:post])

やると例外になります。そのような前時代的なやり方は推奨されなくなりました。
以下のようにするとよいです。

@post = Post.new(params.require(:post).permit(:subject, :body))
@post.save

has_manyなネストされたフォームを扱う例。has_oneでも同じです。

@post = Post.new(params.require(:post).permit(:subject, :body, :comments_attributes => [
  :post_id, :name, :comment
]))

更新

@post.update(params.require(:post).permit(:subject, :body))

更新はせずにパラメタのみ設定したい場合。

@poast.attributes = params.require(:post).permit(:subject, :body)

# (ごにょごにょ)

# 保存します
@post.save

とてもシンプルで綺麗です。
Rails3のコードはこのままでは動かなくなるのはちょっと悲しいです。
have fun.

参考サイト

体系的にまとまっていてとてもわかりやすいです。

投稿者紹介

株式会社ユニキャスト
私たちは、テクノロジに魅せられた個性あふれるメンバーによって構成された茨城県日立市に本社を構えるベンチャー企業です。
”テクノロジを通して「驚き」と「感動」を創造し、人々の「夢」と「笑顔」を支えます。” の経営理念をモットーに明るい未来を描き、ワクワクする企画提案を続けて参ります。

人気の記事

コメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

PAGE TOP