2016-12-06 2 views
0

Я использую Rails 5 и PostGres 9.5. У меня возникли проблемы с отправкой формы, предназначенной для создания пользователя в моей базе данных. У меня есть это в моем контроллереПолучение «ActiveModel :: ForbiddenAttributesError» при попытке создать пользователя

def create 
    @user = User.new(params[:user]) 
    if @user.save 
     flash[:notice] = "You signed up successfully" 
     flash[:color]= "valid" 
    else 
     flash[:notice] = "Form is invalid" 
     flash[:color]= "invalid" 
    end 
    render "new" 
    end 

и вот как моя таблица выглядит в моей базе данных Postgres ...

sims=> \d users; 
             Table "public.users" 
     Column  |   Type    |      Modifiers      
--------------------+-----------------------------+---------------------------------------------------- 
id     | integer      | not null default nextval('users_id_seq'::regclass) 
username   | character varying   | 
email    | character varying   | 
encrypted_password | character varying   | 
salt    | character varying   | 
first_name   | character varying   | 
last_name   | character varying   | 
created_at   | timestamp without time zone | not null 
updated_at   | timestamp without time zone | not null 
Indexes: 
    "users_pkey" PRIMARY KEY, btree (id) 

Но при подаче своей формы с указанными ниже параметрами, я получаю сообщение об ошибке, как вы можете видеть из моих бревна ...

Processing by UsersController#create as HTML 
    Parameters: {"utf8"=>"✓", "authenticity_token"=>"q4YmPjUhD5olnRRgCt/gUuCDrb0lt+EqOxpzXGdtGHBtkwPEYgyp12H8lF04FHpqrZRZCip1Mo8/tvGQinPpJg==", "user"=>{"username"=>”mysuername”, "email"=>”[email protected]", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"Signup"} 
Completed 500 Internal Server Error in 1ms (ActiveRecord: 0.0ms) 



ActiveModel::ForbiddenAttributesError (ActiveModel::ForbiddenAttributesError): 

В бревнах нет другой информации. Что еще мне нужно сделать, чтобы отправить мою форму?

ответ

2

Рельсы не позволяют сохранить из соображений безопасности. Это руководство имеет приятный, краткое объяснение: http://blog.teamtreehouse.com/rails-4-strong-paremeters

Чтобы исправить конкретный пример, изменить @user = User.new(params[:user]) строку:

@user = User.new(params.require(:user).permit(:username, :email, :password, :password_confirmation)) 
Смежные вопросы