Rails4から導入された、ユーザーから送られてきた値を安全に取り扱うための仕組みです。 予期していないパラメーターをはじくことができます。
params.require(:user).permit(:name, :email)
{ user: { name: 'sample', email: 'info@example.com' introduction: 'sample' # 通過しない } }
params.require(:user).permit(:name, :email)
{ sp: { name: 'sample', email: 'info@example.com' } }
params.fetch(:user, {}).permit(:name, :email)
{ sp: { name: 'sample', email: 'info@example.com' } }
params.permit(:name, :email) { name: 'sample', email: 'info@example.com' user: { name: 'sample', email: 'info@example.com' } }
params.require(:user).permit!
{ user: { name: 'sample', email: 'info@example.com', introduction: 'sample' } }
params.require(:user).permit(:name, :email, post_attributes: [] )
{ user: { name: 'sample', email: 'info@example.com', post_attributes: ["1", "2", "3"] } }
params.require(:user).permit(:name, :email, post_attributes: [:id] )
{ user: { name: 'sample', email: 'info@example.com', post_attributes: { "0": { id: '123', content: 'sample' }, "1": { id: '123', content: 'sample' } } } }