首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将国家作为整数存储在ruby on rails中的数据库中

如何将国家作为整数存储在ruby on rails中的数据库中
EN

Stack Overflow用户
提问于 2012-01-29 17:00:53
回答 2查看 1.1K关注 0票数 1

我想做的是:

我试图找出是否有一种快速的方法可以让country_select存储代表国家的整数,而不是存储国家名称/字符串本身。我正在使用国家选择创业板

可能的解决方案:

我认为可以这样做的一种方法是,如果我将gem安装为插件,并编辑countries数组,使其在主数组中包含整数和字符串,例如COUNTRIES =[“联合王国”,1,"United States",2]

这样,在我的表单中,就会有表示字符串的值。然后,我可以在我的配置文件表中有一个country_id列,其中将存储用户选择的国家id。我将有一个单独的表“country”,其中将存储国家,我将使用概要表的country_id来引用国家表中的正确国家。

这样做将意味着我仍将获得良好的宝石/插件的特点,例如,优先国家在选择名单的顶端。我自己不知道该怎么做。

这可能需要很长时间,但可能会奏效。如果我选择这个解决方案,我会把插件放在哪里?供应商文件夹在我的应用程序目录中,对吗?

但是,如果有更快的方法来做这件事,我想这样做。

更大的图景:

好的,我有一个搜索表单,用户可以通过以下方式浏览用户过滤结果的站点:

文字输入位置性别性别婚姻状况国家

我使用的是思芬克斯,在过滤属性时,似乎需要表示整数,因为除了国家之外,所有东西都能工作。

我使用的是国家选择创业板,它似乎只存储字符串,而不是表示字符串的整数。

我想用它来存储整数。

这里是我在搜索表单中使用的一些内容:

代码语言:javascript
复制
module ApplicationHelper

    GENDER            = [["Select", nil],["Male", 1],["Female", 2]]

    ETHNICITY         = [["Select", nil],['Black', 1 ],['White / Caucasian', 2 ],['European', 3 ],['Asian', 4 ],
                         ['Indian', 5 ],['Middle Eastern', 6 ],['Native American', 7 ],['Hispanic', 8 ],
                         ['Mixed Race', 9 ],['Other Ethnicity', 10 ]]

    MARITAL_STATUS    = [[' Select', nil],['Single', 1 ],['Dating', 2 ],['In relationship', 3 ],['Married', 4 ],
                         ['Living Together', 5 ],['Divorced', 6 ],['Separated', 7 ],['Widowed', 8 ]]

    SEXUAL_PREFERENCE = [[' Select', nil],['Straight', 1 ],['Gay', 2 ],['Bi-sexual', 3 ]]

end

搜索/浏览表单:

代码语言:javascript
复制
<%= form_tag browsers_path, :method => 'get' do %>
  <p>
    Location: <%= text_field_tag :location, params[:location] %>
<br />
    Country: <%= country_select :country, [ "United Kingdom", "France", "Germany" ] %>
<br />
    Gender: <%= select_tag :gender, options_for_select(ApplicationHelper::GENDER, params[:gender]) %>
<br />
    Ethnicity: <%= select_tag :ethnicity, options_for_select(ApplicationHelper::ETHNICITY, params[:ethnicity]) %>
<br />

    Marital status: <%= select_tag :marital_status, options_for_select(ApplicationHelper::MARITAL_STATUS, params[:marital_status]) %>
<br />
    Sexual preference: <%= select_tag :sexual_preference, options_for_select(ApplicationHelper::SEXUAL_PREFERENCE, params[:sexual_preference]) %>
<br />
    <%= submit_tag "Search", :name => nil %>
  </p>
  <% end %>

如您所见,每个数组都有一个字符串和一个整数。如果您从country_select gem中签出数组,那么只有字符串。

如果可能的话,我希望能解释一下我想做的最好的方法,以及一个清晰的例子。

我希望这篇文章有意义。

亲切的问候

EN

Stack Overflow用户

回答已采纳

发布于 2012-01-31 00:46:12

最后,我用国家名和iso代码作为值从维基百科重新创建了国家列表。更直截了当地说,我把国家存储为它们的iso代码和整数,这样就可以使用这个属性来思考狮身人面像。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9054921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档