我有一个名字和电子邮件的用户模型 现在我想在用户注册期间添加国家/地区列表框 现在我可以列出所有用户。我想将国家/地区列添加到模型中,因为我想稍后创建一个视图,用户可以根据国家/地区搜索其他用户。
我没有使用设计宝石。
我知道要做的步骤,但我不知道哪种方法正确。 我应该将国家/地区存储在数据库中吗?
首先添加列
rails generate migration add_country_to_users country:<what_type_?>
然后迁移
bundle exec rake db:migrate
然后在模型中添加验证
app/models/user.rb
validates :country, inclusion: %w(full_list?)
以注册表格添加列表框
app/views/users/new.html.erb
<%= f.label :country %>
<%= f.f.select :country %>
以更新形式添加列表框
app/views/users/edit.html.erb
<%= f.label :country %>
<%= f.f.select :country %>
在强力参数中添加
app/controllers/users_controller.rb
def user_params
params.require(:user).permit(:name, :email, :password, :password_confirmation, :country)
end
请帮助。感谢
答案 0 :(得分:1)
我认为最好的方法是将其存储在某个.yml文件中,并将国家/地区代码存储在特定用户的数据库中。
例如:
countries:
us: United States
ger: Germany
您可以在初始化程序中加载文件,
CONFIG = HashWithIndifferentAccess.new(YAML.load(File.read(path_to_file)))`
<强>更新强>