Я не могу проверить письмо полученное в параметрах почтальона - PullRequest
0 голосов
/ 20 февраля 2019

Я проверяю проверку электронной почты, отправляя параметр (электронную почту) в API.Я определил валидации в пользовательской модели.

Пользовательский контроллер:

if User.validates?(:email => params[:email])
  render json: {message: "email"}, status: :ok
else
  render json: {message: "phone"}, status: :bad
end

Пользовательская модель:

validates_presence_of :name, :email, :contact, :password_digest
validates :email, uniqueness: true
#encrypt password
has_secure_password

В почтальоне выдается ошибка:

 "exception": "#<NoMethodError: undefined method `validates?' for #<Class:0x00007fbcdc0b0770>\nDid you mean?  validates\n               validate\n               validates!\n               validators\n               _validators?>",
"traces": {
    "Application Trace": [
        {
            "id": 1,
            "trace": "app/controllers/v1/users_controller.rb:34:in `login'"
        }
    ]

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019
class UsersController < ApplicationController
  def foo
    if valid_email?(params[:email])
      render json: {message: "email"}, status: :ok
    else
      render json: {message: "phone"}, status: :bad
    end
  end

  private

  def valid_email?(email)
    VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
    email.present? &&
    (email =~ VALID_EMAIL_REGEX) &&
    User.find_by(email: email).empty?
  end
end

Вы можете сделать что-то вроде этого.Однако я бы сказал, что валидация все еще принадлежит модели, даже если она не основана на ActiveRecord.Пожалуйста, посмотрите, как использовать ActiveModel :: Validations:

http://api.rubyonrails.org/classes/ActiveModel/Validations.html http://yehudakatz.com/2010/01/10/activemodel-make-any-ruby-object-feel-like-activerecord/ http://asciicasts.com/episodes/219-active-model

0 голосов
/ 20 февраля 2019

Выдает ошибку no method для метода validates?, который не существует.Возможно, вы хотите использовать метод valid? Однако вы можете вызвать valid? только в экземпляре, не принадлежащем классу User.Возможно, вы захотите изменить код немного больше.

https://guides.rubyonrails.org/active_record_validations.html#valid-questionmark-and-invalid-questionmark

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...