2015-06-18 2 views
1

Я хочу подтвердить свою запись на наличие в базе данных. Другими словами, проверьте, присутствуют ли входные данные в таблице, если они не отпускаются, иначе остановитесь и покажите сообщение об ошибке, например, при проверке присутствия и т. Д. Итак, насколько я знаю, нет никаких подтверждений: существование или что-то в этом роде в Рельсы 4.2. Вопрос: Есть ли простой способ сделать это?Проверка на существование

Если нет, то я могу вручную проверить наличие в моем контроллере так:

@client = Client.where("name = ?", @request.name).take 
if @client.present? 
    @request.client_id = @client.id 
else  
    # some error message 
    render 'new' 
end 

Я думаю, что это должно работать, но как отобразить сообщение об ошибке, не мигает.

ответ

1

Вы можете использовать uniqueness helper для подтверждения того, что имя клиента является уникальным или не

class Client < ActiveRecord::Base 
    validates :name, uniqueness: true 
end 

И если это не удовлетворяет ваши потребности, то вы всегда можете создать метод custom validation и добавить ошибки

class Client < ActiveRecord::Base 
    validate :some_custom_method 

    def some_custom_method 
    # check for some condition 
    # add error messages if that condition fails 
    end 
end 

PS Если вы используете помощника уникальности, тогда обязательно добавьте уникальную константу на свой db.

обновление:

Вы можете добавлять сообщения об ошибках, как это:

def some_custom_method 
    errors.add(:base, "error message") unless some_condition 
end 

Для получения дополнительной информации проверка working with errors.

+0

Как добавить сообщения об ошибке? – yerassyl

Смежные вопросы