设计控制器忽略'+'字符

时间:2016-07-11 07:45:02

标签: ruby-on-rails devise ruby-on-rails-4.2

我在Devise Registrations控制器中编写了一个API来检查具有给定电子邮件ID的用户是否存在?

def check_user
  user = User.find_by_email(params[:email])
  if user
    render json: { success: true, status: 200} and return
  else
    render json: { success: false, status: 200} and return
  end
end

设计控制器以某种方式剥离参数中的“+”字符。 即,当我点击/check_user?email=tester+12343@mailer.com时,到达控制器的参数是Parameters: {"email"=>"soorajs 12343@qburst.com"},这是由于设计的任何错误配置?

1 个答案:

答案 0 :(得分:1)

它不是设计,它是铁轨。 +表示查询字符串中的编码空间。如果你想要文字加,那么你应该把它编码为%2B

或者,您可以使用POST请求并在请求正文中发送params。那里不需要逃脱。虽然使用POST进行明显的查询是一种虚假的行为。