我有美国各州和地区的下拉列表。我想添加加拿大各省,以便按字母顺序排列整个州/省。
目前我有此代码列出了所有美国州和地区:
= extra_fields.input :province, label: "Franchisee Billing State/Province", input_html: { class: "form-control" } do
= extra_fields.subregion_select(:province, "US", {prompt: 'Please select a state'}, required: 'region required')
我尝试将subregion_select的第二个参数转换为[" US," CA"],但这会破坏事情。
答案 0 :(得分:1)
根据我的理解,您正在寻找加拿大省和美国州的联盟,而select
字段没有country_select
功能。如果我是对的,你可以通过这种方式获得
countries = Carmen::Country.all.select{|c| %w{US CA}.include?(c.code)} # get the countries
# get the subregions of US and CA
subregions = countries.collect {|x| x.subregions }.flatten
在rails应用程序中
创建辅助方法
def subregions_of_us_and_canada
countries = Carmen::Country.all.select{|c| %w{US CA}.include?(c.code)}
# get subregions and sort in alphabetical order
countries.collect {|x| x.subregions }.flatten.sort_by(&:name)
end
以表格
调用上述方法= extra_fields.input :province, as: :select, collection: subregions_of_us_and_canada, label_method: :name, value_method: :code, label: "Franchisee Billing State/Province", input_html: { class: "form-control" }, prompt: 'Please select a state'
我希望这会有所帮助