2015-08-30 2 views
0

Класс UserController имеет следующий код:данных не получать сохраняются в базе данных из формы

def create 
     @user = User.new(params[:user].permit(:userid,:password,:email)) 
     render plain: params[:user].inspect+"||"[email protected] 
     #@user.save 
     #flash[:notice] = "You signed up successfully" 
     #redirect_to @user 
    end 

Форма имеет следующий код: (@user или :user, не имеет значения, выход такой же)

<%= form_for :user, url:users_path do |f| %> 
<%= f.label:USERID %><%= f.text_field :userid %><br /> 
<%= f.label:PASSWORD %><%= f.password_field :password %><br /> 
<%= f.label:EMAIL %><%= f.text_field :email %><br /> 
<br /> 
<%= f.submit %> 
<% end %> 

Когда я заполняю форму, я получаю этот выход:

{"userid"=>"viky", "password"=>"123456", "email"=>"aa"}||#<User id: nil, userid: nil, password: nil, email: nil, created_at: nil, updated_at: nil> 

Как вы можете видеть, идентификаторы пользователя, пароль и электронная почта передаются в параметрах, но не отображаются в @users, я не знаю, почему. И затем, если я набираю @ users.save, тогда он сохраняет нулевую строку в базе данных.

ответ

0

I Guess ваш синтаксис разрешения неправильно

Использование: params.require(:user).permit(:userid,:password,:email)

+0

я получил error- неизвестно атрибут пользователя – user1735921

+0

@ user1735921 Я обновил ответ, вы можете проверить еще раз? –

0

это из-за attr_accessor в модели пользователя, я удалил attr_accessors из пользовательской модели и она работала хорошо

Смежные вопросы