Я пытаюсь перенаправить пользователя на маршрут «посещаемость /: домен», когда параметр из раскрывающегося списка, который я внес, изменился. Я делаю это с помощью javascript. Ранние реализации вроде: window.location = "<%= url_for(:controller => 'attendance', :action => 'index') %>?" + id;
просто добавьте идентификатор к предыдущей ссылке, так что если бы у меня было 'attendance/2'
, это было бы 'attendance/23'
вместо 'attendance/3'
. Так что я пытаюсь использовать путь предоставленный рубина, как так:Collection_select перенаправление с параметрами с помощью javascript
config.rb:
get 'attendance/:domain', to: 'attendance#index', as: 'attendance_domain'
вид:
<div class="form-group col-lg-3 col-md-5 ">
<%= label_tag(:domain, "Domeniu", class: "control-label") %>
<%= collection_select(nil, :id, @domains, :id, :complete_name, {selected: -1}, {:onchange=> "redirectToIndex(this.value)",:selected => params[:domain],class: "form-control"}) %>
</div>
Javascript в виду:
function redirectToIndex(trainerId){
window.location ="<%= url_for(attendance_domain_path(" + trainerId + ")) %>";
}
В в этой реализации ссылка, на которую я перенаправлен, есть: http://localhost:3000/attendance/ + trainerId +
, которая не то, что я хотел. Вместо trainerId это должно быть значение этой переменной. Любые советы, пожалуйста?
В конце мой вопрос: как я могу перенаправить параметры с помощью collection_select. Этот раскрывающийся список будет доступен на одной странице, поэтому параметры должны соответственно меняться, как в описанной выше ситуации.
-> (d) {url_for d}, я заменяю d в этом рельсом? –
'-> (d) {url_for d}' является 'lambda'. Rails вызовет его для каждого элемента в '@ domains', а значение select будет содержать полный URL-адрес, а не только' id'. Просто попробуйте код и взгляните на подготовленный HTML. –
Я получаю что-то вроде синтаксической ошибки, неожиданно tLPAREN_ARG, ожидая ключевое слово_до_LAMBDA или tLAMBEG: D. Дайте мне несколько минут, чтобы попытаться исправить это. –