Rails4のstrong_parameters覚え書き

Pocket

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.

**参考サイト

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

-[http://willnet.in/48:title]

投稿者紹介

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

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください