数据未从表单保存到数据库

时间:2015-08-30 18:26:54

标签: ruby-on-rails

类UserController具有以下代码:

 def create
      @user = User.new(params[:user].permit(:userid,:password,:email))
      render plain: params[:user].inspect+"||"+@user.inspect
      #@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,那么它会在数据库中保存一个空行。

2 个答案:

答案 0 :(得分:0)

我猜你的许可证语法错误

使用:params.require(:user).permit(:userid,:password,:email)

答案 1 :(得分:0)

这是因为用户模型中的attr_accessor,我从用户模型中删除了attr_accessors并且工作正常

相关问题