2016-10-14 3 views
1

У меня есть этот кодрельсов проверить конкретное значение

У меня есть эти варианты, и если пользователь выбирает что-либо, кроме как дать ему сообщение об ошибке «Британской Колумбии» , что в провинции должен «Британской Колумбии»

I полагаю, что это будет решить с помощью модели проверки

<%= f.label :province ,"Province (required)"%><br> 
    <%= f.select(:province, [["Select One", ""],'Alberta','British Columbia','Manitoba','New Brunswick','Newfoundland and Labrador','Nova Scotia','Northwest Territories','Nunavut','Ontario','Prince Edward Island','Quebec','Saskatchewan','Yukon'], {}) %> 

User.rb

validates :province, presence: "British Columbia" 

ответ

2

Вы не должны использовать присутствие; это неправильная проверка. Вы должны использовать inclusion:

validates: province, inclusion: { in: ["British Columbia"] } 

Вы понимаете, что это не проблема бы бессмысленно, не так ли? Какой смысл предлагать несколько альтернатив в представлении, если валидация примет только один?

+0

Я написал его undefined метод 'Британская Колумбия 'за # <Пользователь: 0x007f9ebc346978> – nour

+0

Извините, см. Править. Нужно быть в скобках массива. –

+1

Точка может заключаться в добавлении других ограничений, например: create. Чтобы увеличить количество обновлений. –