ArgumentError ('1' не является допустимым типом)
Вы должны изменить select
, как показано ниже
<%= f.select :type, options_for_select(Property.types.map { |key, value| [key.humanize, key] }), {prompt: "Select Type of Property..."}, class: "form-control" %>
Потому что это
<%= f.select :type, options_for_select(Property.types), {prompt: "Select Type of Property..."}, class: "form-control" %>
генерирует select
с options
как
<option value="0">Type_1</option>
<option value="1">Type_2</option>
<option value="2">Type_1</option>
Таким образом, при отправке формы значения select
отправляются как "0", "1", "2"
, которые являются недопустимыми типами для перечисления type
.
А это
<%= f.select :type, options_for_select(Property.types.map { |key, value| [key.humanize, key] }), {prompt: "Select Type of Property..."}, class: "form-control" %>
генерирует select
с options
, как
<option value="Type_1">Type 1</option>
<option value="Type_2">Type 2</option>
<option value="Type_3">Type 3</option>
Так что теперь значения select
отправляются как "Type_1", "Type_2", "Type_3"
, которые являются допустимыми типами для перечисления type
.
Кроме того, type
является резервным словом (используется в STI ). Я рекомендую изменить его на что-то вроде property_type