У меня есть поле в моей модели User, которое защищено, потому что оно определяет уровень зазора. Поэтому его следует оставить защищенным, а не массовым назначением. Так что даже если атрибуты по умолчанию защищены в 3.2, это на самом деле поведение, которое я хочу.Назначение защищенного атрибута в Rails
Однако, по одному методу контроллера, я хочу разрешить менеджеру назначать это поле, например, при создании пользователя или обновлении пользователя.
Как разрешить присвоение этого атрибута определенным действиям контроллера?
К примеру, у меня есть контроллер:
# app/controllers/admin/users_controller.rb
def create
@user = User.new(params[:user])
# ...
end
Теперь то, что я хотел бы сделать, это исключить clearance
из params[:user]
, но, кажется, отфильтрованы и поднимать и исключение даже до того, что линия будет достигнута (I попробовал поставить debugger
прямо перед этой линией и даже прокомментировать это, он все же вызвал исключение).
Где защищенные атрибуты попадают, если не при вызове User#new
?
Защищенные атрибуты должны быть уловлены перед вызовом 'User # new', за исключением случаев, когда, как и в моем случае, gem Cancan загружает ресурс. –