Удаление доступа к столбцу из метода модели в рельсах - PullRequest
0 голосов
/ 23 июня 2011

Я работаю на рельсах 2.3.11. У меня есть модель с блогом (id, заголовок, описание, refer_publications) refer_publications не является обязательным полем.

В моем app_Config по умолчанию я оставлял refer_publications как false.

Я включил условие проверки, включено ли оно в конфигурацию в VIEWS для отправки блога.

Например, если кто-то что-то делает, а не из моего интерфейса /

Со стороны моей модели,

Я бы хотел, чтобы, если Refer_publications был включен из конфигурации, тогда экземпляр можно сохранить, но если он не включен, и только если пользователь пытается использовать атрибут refer_publications, чтобы выдать ошибку или если он не использует это Refer_publications, то он может сохранить без ошибок

Но как это сделать со стороны МОДЕЛИ.

Пожалуйста, дайте предложения по решению этой проблемы.

1 Ответ

1 голос
/ 23 июня 2011

Я думаю, вы ищете пользовательскую проверку.

Если у вас есть модель Blog, которая условно требует наличия атрибута, каждый раз при сохранении Blog необходимо проверить, требуется ли атрибут прямо сейчас, и, если это так, проверить его наличие.Вот так:

class Blog < ActiveRecord::Base
    validate :referred_publications_present_if_required?

    private

    def referred_publications_present_if_required?
        if AppConfig.require_referred_publications
            errors.add(:referred_publications, "must be present")
        end
    end
end

См. Rails Guides: Validations для получения дополнительной информации.Также было бы целесообразно инкапсулировать проверку, чтобы увидеть, требуется ли атрибут в методе модели, который могут использоваться как вашими представлениями, так и вышеописанным методом, вместо того, чтобы ставить проверку в AppConfig в обоих местах.* Надеюсь, это поможет!

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