У меня есть Rails приложение, где я могу выбрать страну:Выбор2 представление значения вместо идентификатора
= f.input :country, label: t("heading.country"), as: :string, input_html: { class: 'select2', data: { allowadd: true, depth: 0, id: @post.location.country.id, url: search_locations_path } }
Выбор2 прикреплен к этому элементу по:
loadSelect2 = (selector = '.select2') ->
$(@).select2
ajax:
data: (term, page) ->
search: term
depth: $(@).data('depth')
results: (data, page) ->
results: data
url: $(@).data('url')
createSearchChoice: (term, data) ->
if $(data).filter(->
@title.localeCompare(term) is 0
).length is 0
id: term
title: term
createSearchChoicePosition: 'bottom'
formatResult: (item) ->
item.title
formatSelection: (item) ->
item.title
initSelection: (element, callback) ->
callback
id: $(element).data('id')
title: $(element).val()
Итак, как вы видите, я могу выбрать страну или добавить ее (если в стране нет страны). Также я загружаю начальное значение из ввода val
и id от data-id
внутри initSelection
.
Когда я выбираю страну и отправить форму все работает: post_params['country']
равно идентификатор выбранной страны, но если я отправить форму без изменения выбранного значения (оставляя по умолчанию), затем post_params['country']
helds value
, вместо id
.
Где я ошибаюсь и как это исправить?
где рельсы код создает вход? –
@ МалъСкрылевъ добавил код создания ввода –
кажется, что вход не является сборником –