我正在使用strip查看电子邮件,但它给了我这个问题,请帮帮我。
UsersController#check_email中的NoMethodError nil的未定义方法`strip':NilClass
def check_email
if params[:email].blank?
@email = params[:email].strip
user = User.find_by_email(@email)
if user.nil?
text = "false"
else
text = "true"
end
render :text => text
else
render :text =>text
end
end
答案 0 :(得分:1)
根据塞尔吉奥和布拉德的反馈意见:
def check_email
text = params[:email].present? && User.where(email: params[:email].strip).exists?
render :text => text
end
答案 1 :(得分:0)
将其更新为: -
def check_email
if params[:email].present?
@email = params[:email].strip
user = User.find_by_email(@email)
unless user.present?
text = "false"
else
text = "true"
end
render :text => text
else
render :text =>text
end
end
答案 2 :(得分:0)
您有小错误,需要使用:
unless params[:email].blank?
或者,
if params[:email].present?
答案 3 :(得分:0)
if params[:email].blank?
应为if params[:email].present?
。
问题是当params[:email]
为零时,您正在调用strip
方法,即nil.strip
所以改成它跟随
def check_email
if params[:email].present?
@email = params[:email].strip
user = User.find_by_email(@email)
text = user.nil? ? "false" : "true"
else
text = "please enter email address"
end
render :text =>text
end