Я хотел бы изменить поле gender, Первоначально я объявил поле gender логическим значением true или false. но теперь я хочу, чтобы он был изменен как список (Мужской, Женский, Другой).Удалить boolean и добавить список в ruby on rails
class AddExtraFieldsToUser < ActiveRecord::Migration
def change
add_column :users, :phone_number, :string
add_column :users, :date_of_birth, :datetime
add_column :users, :gender, :boolean, default: false
add_column :users, :live_in, :string
add_column :users, :description, :text
end
end
Могу ли я изменить следующим образом .... пожалуйста, дайте мне знать правильный путь ...
я думал, что делать rails g migration RemovegenderFromUsers gender:boolean
затем rake db:migrate
с последующим созданием нового один
rails g migration AddGenderToUsers gender:select
user.rb
GENDER_TYPES = ["Male", "Female", "Other"]
html
<%= f.select :gender, User::GENDER_TYPES %>
Вышеупомянутый процесс правильный или любым другим способом?
или в качестве альтернативы, вы можете определить 'gender' быть' string'. Это приведет к снижению производительности, хотя, скорее всего, разница будет незначительной. –
Если вы собираетесь объявить массив разных полов, подумайте об использовании перечисления, так как у вас будет множество встроенных методов рельсов, которые помогут вам справиться с гендерными значениями. – hypern
1) должен ли я написать change_column: users,: gender,: integer, default: 0 в уже сгенерированном файле миграции или в новом файле AddGenderToUsers? 2) Где я могу объявить мужчину-мужчину другим. – MSK