Я решил это путем:
Step1: Генерируется миграция
rails g migration addStateCodeFieldToAccounts state_code:string
Шаг 2: Определить способ внутри контроллера
def subregion_options
render partial: 'subregion_select'
end
Шаг 3: Объявите в маршрутах
resources :accounts do
collection do
get 'subregion_options'
end
end
Step4: Ввиду
<div class="input-control select state_input" data-role="input-control">
<%= f.select :country, region_options_for_select(only_us_and_france) %>
</div>
<div class="input-control select state_input" data-role="input-control">
<%= render partial: 'subregion_select', locals: {parent_region: f.object.country} %>
</div>
Step5: Сделайте частичную subregion_select
<div id="account_state_code_wrapper">
<% parent_region ||= params[:parent_region] %>
<% country = Carmen::Country.coded(parent_region) %>
<% if country.nil? %>
<em>Please select a country above</em>
<% elsif country.subregions? %>
<%= subregion_select(:order, :state_code, parent_region) %>
<% else %>
<%= text_field(:order, :state_code) %>
<% end %>
</div>
Step6: В моем файле JS написал это
$('select#account_detail_country').change(function(){
selectWrapper = $('#account_state_code_wrapper')
countryCode = $(this).val()
url = "/account_details/subregion_options?parent_region="+countryCode
console.log(url)
selectWrapper.load(url)
});
да и это работает :) Надеюсь, это поможет вам.
Вы хотите спросить, хотите ли вы иметь два 'selects' в HTML-форме. И выбор конкретной страны будет заполнять другой выбор субрегионами этой конкретной страны? –
да, именно мне это нужно. – railslearner
Но я не понял, почему помощник называется «only_us_and_canada» –