Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Authlogic忽略密码参数_Ruby On Rails_Ruby_Authlogic - Fatal编程技术网

Ruby on rails Authlogic忽略密码参数

Ruby on rails Authlogic忽略密码参数,ruby-on-rails,ruby,authlogic,Ruby On Rails,Ruby,Authlogic,Authlogic在创建新用户时似乎忽略了密码参数。以下是我的用户\控制器类: class Api::V1::UsersController < ApplicationController def create @user = User.new(user_params) respond_to do |format| if @user.save format.json { render :json => @user, :status

Authlogic在创建新用户时似乎忽略了密码参数。以下是我的用户\控制器类:

class Api::V1::UsersController < ApplicationController

  def create
    @user = User.new(user_params)

    respond_to do |format|
      if @user.save
        format.json  { render :json => @user, :status => :created}
      else
        format.json  { render :json => @user.errors, :status => :unprocessable_entity }
      end
    end
  end

  private
  def user_params
    params.require(:user).permit(:username, :email, :password)
  end

end
我正在使用最新的authlogic和Ruby 2/Rails 4。

尝试一下:-

acts_as_authentic do |config|
  config.check_passwords_against_database = false
  config.validate_password_field = false
  config.crypted_password_field = false
end

看一看Rails日志的摘录:

{"email"=>"someemail@website.com", "password"=>"[FILTERED]", "username"=>"myUser", "user"=>{"username"=>"myUser", "email"=>"someemail@website.com"}}
看起来您发送的参数有点错误。要被Authlogic识别,
password
参数应位于
user
键入参数散列下。也就是说,Rails日志中的行应该如下所示(注意字符串的末尾):

要修复它,您可以进行如下操作:

private
def user_params
  params.require(:user).permit(:username, :email).merge(:password => :password)
end

或者,您可以调整从客户端发送的参数(例如,在发送
HTTP POST
请求时,使用
user[password]
参数的名称,而不仅仅是
password

允许创建用户,但不需要密码。我需要我的用户有一个密码。
{"email"=>"someemail@website.com", "password"=>"[FILTERED]", "username"=>"myUser", "user"=>{"username"=>"myUser", "email"=>"someemail@website.com"}}
{"email"=>"someemail@website.com", "password"=>"[FILTERED]", "username"=>"myUser", "user"=>{"username"=>"myUser", "email"=>"someemail@website.com", "password" => "[FILTERED]"}}
private
def user_params
  params.require(:user).permit(:username, :email).merge(:password => :password)
end