在操作视图中使用自定义时区选择选项的其他不同方式是什么 - ROR [关闭]

问题描述 投票:0回答:0

我尝试使用 ActionView 的 time_zone_select 来显示用于选择 GMT+08:00 'countryName' 的区域列表,但这种方法无助于实现。我用尽了不同的方法来实现同样的目标。

回答我自己的问题,因为我发现以下内容可能对其他人有帮助

在 ROR 中使用自定义时区选择选项的不同方式

1。使用 TZInfo::DataTimezone
2. 使用 TZInfo::Timezone
3.使用time_zone_select
自定义选择选项的优先级 4. 选择选项以获取“GMT +..”时区选项使用ActiveSupport::TimeZone

Note:

1. I have used gem 'bootstrap-select-rails' for class= selectpicker.

2. Search option is introduced in options 

"data-live-search": "true"

3.prompt: '--Select timezone--' is added for user prompt.

在 ROR1 中使用自定义时区的不同方式。使用 TZInfo::DataTimezone

苗条的代码片段

= select_tag 'country[time_zone]', options_for_select(TZInfo::DataTimezone.all_country_zone_identifiers {|c| TZInfo::DataTimezone.get(ActiveSupport::TimeZone[c]) }), class: 'form-control'

以上输出

<select name="country[time_zone]" id="country_time_zone" class="form-control"> <option 
value="Europe/Andorra">Europe/Andorra
</option> <option value="Asia/Dubai">Asia/Dubai</option>..... </select>

  1. 使用 TZInfo::Timezone
    苗条的代码片段
= select_tag 'country[time_zone]', options_for_select(TZInfo::Timezone.all {|c| Time.zone(c.offset)}), class: 'form-control'

以上输出

<select name="country[time_zone]" id="store_time_zone" class="form-control"><option 
value="Africa - Abidjan">Africa - Abidjan
</option><option value="Africa - Accra">Africa - Accra</option>..........</select>

3。使用 time_zone_select

在选择选项中自定义优先级
= time_zone_select("country", :time_zone,[ActiveSupport::TimeZone['Singapore'],ActiveSupport::TimeZone['Beijing'],ActiveSupport::TimeZone['Chongqing'],ActiveSupport::TimeZone['Hong Kong'],ActiveSupport::TimeZone['Irkutsk'],ActiveSupport::TimeZone['Kuala Lumpur'],ActiveSupport::TimeZone['Perth'],ActiveSupport::TimeZone['Taipei'],ActiveSupport::TimeZone['Ulaanbaatar']],options = {prompt: '--Select timezone--', value: :id}, html_options = {class:'form-control selectpicker', required: true, "data-live-search": "true"})

输出

<select class="form-control selectpicker" required="required" data-live-search="true" name="country[time_zone]" id="country_time_zone" tabindex="-98"><option value="">--Select timezone--</option><option 
value="Singapore">(GMT+08:00) Singapore
</option>.........</select>

4。选择选项以使用 ActiveSupport::TimeZone

获取“GMT +..”时区选项
= select_tag 'country[time_zone]', options_for_select(ActiveSupport::TimeZone.all{ActiveSupport::TimeZone['Singapore']}, f.object.time_zone), class: 'form-control selectpicker', "data-live-search": "true", prompt: '--Select timezone--'

输出

<select name="country[time_zone]" id="store_time_zone" class="form-control selectpicker" data-live-search="true" required="required" tabindex="-98"><option value="">--Select timezone--</option><option 
value="(GMT-12:00) International Date Line West">(GMT-12:00) International Date Line West
</option><option value="(GMT-11:00) American Samoa">(GMT-11:00) American Samoa</option></select>

我想实现下面附上的图像输出,为此遵循方法4

ruby-on-rails ruby-on-rails-3 slim-lang
© www.soinside.com 2019 - 2024. All rights reserved.