Я использую рельсы 4 с сильными параметрами и пытаюсь выяснить, как установить сильные параметры, чтобы не допускать атрибутов с параметром.Rails 4 Сильные параметры напротив разрешить все атрибуты
Я читал это Rails 4 Strong parameters : permit all attributes? И хотел бы сделать противоположное этому.
params.require(:user).permit!
Разрешите все атрибуты, как я могу сделать обратное?
ОБНОВЛЕНИЕ ЭТО МОЙ ПОЛНЫЙ КОД:
в приложение/контроллеры/application_controller.rb
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
before_filter :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:username, :email, :password, :password_confirmation, :remember_me) }
devise_parameter_sanitizer.for(:sign_in) { |u| u.permit(:signin, :password, :remember_me) }
devise_parameter_sanitizer.for(:account_update) {|u| u.permit(:username, :email, :password, :password_confirmation, :current_password)}
devise_parameter_sanitizer.for(:sign_in) { |a| a.permit(:signin, :password, :remember_me) }
devise_parameter_sanitizer.for(:account_update) {|a| a.permit(:username, :email, :password, :password_confirmation, :current_password)}
end
end
в приложение/модели/admin.rb
class Admin < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable, :registerable
devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable
attr_accessor :signin
def self.find_first_by_auth_conditions(warden_conditions)
conditions = warden_conditions.dup
if login = conditions.delete(:signin)
where(conditions).where(["username = :value OR lower(email) = lower(:value)", { :value => login }]).first
else
where(conditions).first
end
end
validates :username, presence: true, length: {maximum: 255}, uniqueness: { case_sensitive: false }, format: { with: /\A[a-zA-Z0-9]*\z/, message: "may only contain letters and numbers." }
end
Модель users.rb такая же, как у admin.rb mo дель. Это приводит к двум различным признакам/знакам в ссылках - 1 для каждой модели. Также мне нужно оставить: регистрируемый модуль, чтобы я мог переопределить регистрируемый модуль по умолчанию. Однако я изменил представления, чтобы не отображать страницу администратора при вводе в браузере. --- Мне нужно только заблокировать его через командную строку.
Я также отправил предыдущий вопрос подобный этому:
Rails 4 Devise Strong Parameters Admin Model
Я использую устройство и пытаюсь установить админ-модель, позволяющую никому не подписывать__ – Daniel
Сильные параметры не используются в моделях - если у вас нет контроллера или маршрута для людей, чтобы зарегистрироваться, для них не будет способа для этого. – Ari
Я удалил: регистрируемый модуль из модели admin, но я считаю, что кто-то все еще может создать администратора из терминала, дающего им доступ к моему сайту. – Daniel