#ruby-on-rails
#ruby-on-rails
Вопрос:
Я использую функцию выбора, чтобы позволить пользователю выбирать дату из списка, и я не знаю, как сохранить его выбор в переменной, чтобы использовать его впоследствии в цикле.
Вот моя функция выбора:
<%= select( , , @benchmark.compositions.find(:all).collect {|u| [u.date_composition] }, :prompt => 'Selected date') %>
Я хочу сохранить его выбор (например: date_selected = 2014-06-05), чтобы я мог сделать так, чтобы мой объект отображался при выбранном условии (date_compostion = 2014-06-05).
Комментарии:
1. Вы хотите сохранить значение даты выбора после отправки формы или при выборе / изменении?
2. При выборе / изменении было бы неплохо, но после отправки тоже нормально.
Ответ №1:
Сначала убедитесь, что вы установили имя / идентификатор элемента select:
<%= select( 'resource', 'field', @benchmark.compositions.find(:all).collect {|u| [u.date_composition] }, :prompt => 'Selected date') %>
Это сгенерирует HTML-код, который будет выглядеть:
<select id="resource_field" name="resource[field]">
<option ..... /option>
</select>
Затем, если вы хотите получить значение при выборе / изменении, вы можете сделать это с помощью Coffeescript или jQuery. Пример:
# coffeescript which is located under app/assets/javascripts/__a_controller_name__.js.coffee
$(document).ready =>·
$('#resource_field').change ->
alert( $(this).val() )
Элемент select является $('#resource_field')
.
Если вы хотите получить значение после отправки, вы можете получить значение из контроллера, обратившись к переменной ‘params’:
# a method under a controller
def sample_method
@resource_field = params[:resource][:field]
end
Надеюсь, это поможет.
Приветствия!
Комментарии:
1. Спасибо, кажется, это то, что мне нужно. Но могу ли я попросить вас более конкретно рассказать о первом решении? Я установил драгоценный камень Coffeescript, поместил его в свой Gemfile, создал файл с именем benchmarks_controller.js.coffee в папке, которую вы упомянули. Но когда пользователь выбирает дату в приложении, это, похоже, ничего не меняет, и когда я использую $(‘#resource_field’) в своем коде, он говорит «синтаксическая ошибка»