При настройке моих моделей мне часто приходится записывать все свои атрибуты при настройке определенных валидаций. Типичным примером является, когда я использую presence
параметр:Выбор всех текущих атрибутов модели для валидации в Rails
validates :first_name, :last_name, :username, :email, presence: true
Есть ли умный способ выбрать все свои атрибуты без явного написания их все аналогично тому, как вы можете получить их в консоли рельсы?
User.columns
И передать его в качестве аргумента в метод проверяет?
ALL_ATTRIBUTES = User.columns
validates ALL_ATTRIBUTES, presence: true
Пытаясь что-то подобное, что я получил эту ошибку undefined method 'to_sym'
Спасибо за предупреждение, и да, похоже, это делает трюк. Всего несколько вопросов. Почему перед '' '' перед '' и '&:' перед преобразованием атрибутов в символы? –
@CarlEdwards 'column_names.map (&: to_sym)' является сокращением для 'column_names.map {| column | column.to_sym} '. Если вы вызываете метод только для атрибутов, вы можете сократить использование '&: to_sym'. Это синтаксический сахар. – Mohamad
@CarlEdwards: добавлено объяснение ваших сомнений. Если ответ поможет, пожалуйста, примите его, чтобы другие могли использовать его для справки. Благодарю. – Surya