Я играю с Rails 3.2.13 и жемчугом strong_parameters. Я хотел знать, должен ли я получать повышенное исключение от ActiveModel::ForbiddenAttributes
, когда я тестирую его в разработке?Исключения рельсов 3.2.13 и strong_parameters
Мои сообщения модель имеет :title
и :content
, но если я удалю :title
от разрешения, я не получаю сообщение об ошибке, но я попадаю обратно на страницу редактирования с флэш-уведомления, поэтому она сохраняется запись. Хотя, это не изменило :title
, по праву. Это поведение по умолчанию?
def post_params
params.require(:post).permit(:content)
end
Я хотел знать, нужно ли мне что-то делать, чтобы получить повышенное исключение.
Gemfile: конфиг
# Gemfile
gem 'rails', '3.2.13'
gem "strong_parameters"
Применение:
# config/application.rb
config.active_record.whitelist_attributes = false
Сообщение Модель:
# post.rb model
class Post < ActiveRecord::Base
include ActiveModel::ForbiddenAttributesProtection
end
Сообщение Контроллер:
# post_controller.rb
class PostsController < ApplicationController
def update
@post = Post.find(params[:id])
if @post.update_attributes(post_params)
redirect_to edit_post_path(@post), flash { success: "Post updated" }
else
render "edit"
end
end
private
def post_params
params.require(:post).permit(:title, :content)
end
end