我想做的是:
我试图找出是否有一种快速的方法可以让country_select存储代表国家的整数,而不是存储国家名称/字符串本身。我正在使用国家选择创业板。
可能的解决方案:
我认为可以这样做的一种方法是,如果我将gem安装为插件,并编辑countries数组,使其在主数组中包含整数和字符串,例如COUNTRIES =[“联合王国”,1,"United States",2]
这样,在我的表单中,就会有表示字符串的值。然后,我可以在我的配置文件表中有一个country_id列,其中将存储用户选择的国家id。我将有一个单独的表“country”,其中将存储国家,我将使用概要表的country_id来引用国家表中的正确国家。
这样做将意味着我仍将获得良好的宝石/插件的特点,例如,优先国家在选择名单的顶端。我自己不知道该怎么做。
这可能需要很长时间,但可能会奏效。如果我选择这个解决方案,我会把插件放在哪里?供应商文件夹在我的应用程序目录中,对吗?
但是,如果有更快的方法来做这件事,我想这样做。
更大的图景:
好的,我有一个搜索表单,用户可以通过以下方式浏览用户过滤结果的站点:
文字输入位置性别性别婚姻状况国家
我使用的是思芬克斯,在过滤属性时,似乎需要表示整数,因为除了国家之外,所有东西都能工作。
我使用的是国家选择创业板,它似乎只存储字符串,而不是表示字符串的整数。
我想用它来存储整数。
这里是我在搜索表单中使用的一些内容:
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
搜索/浏览表单:
<%= 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中签出数组,那么只有字符串。
如果可能的话,我希望能解释一下我想做的最好的方法,以及一个清晰的例子。
我希望这篇文章有意义。
亲切的问候
发布于 2012-01-31 00:46:12
最后,我用国家名和iso代码作为值从维基百科重新创建了国家列表。更直截了当地说,我把国家存储为它们的iso代码和整数,这样就可以使用这个属性来思考狮身人面像。
https://stackoverflow.com/questions/9054921
复制相似问题