#javascript #ruby-on-rails #ruby-on-rails-4 #datepicker #erb
#javascript #ruby-on-rails #ruby-on-rails-4 #выбор даты #ошибка
Вопрос:
Возможно, нет способа достичь этого без формы, но мне интересно. Я вызываю метод download_pdf из проблемы, нажав кнопку в административной части моего приложения. Вот рабочий код:
<%= button_to t('.download_pdf', :default => "Download PDF BTC Statement"), download_pdf_admin_user_path(@user),
:action => :download_pdf,
:class => "btn btn-success btn-xs" %>
Теперь давайте признаем, что я хотел бы разрешить менеджеру сайта выбирать как start_date, так и end_date, чтобы эти параметры передавались в controller#method для генерации отчета для этого диапазона дат. Я пробовал следующее, но понятия не имею, как передать эти переменные (start_date / end_date) контроллеру. Вот нерабочий код (см. Заглавные буквы в параметрах button_to):
<input type="text" placeholder="start date" id="start_date" class='datepicker'>
<input type="text" placeholder="end date" id="end_date" class='datepicker'>
<script type="text/javascript">
$(document).ready(function(){
$('#start_date').datepicker();
$('#end_date').datepicker();
START_PLZ = $('#start_date').datepicker().val();
END_PLZ = $('#end_date').datepicker().val();
});
</script>
<%= button_to t('.download_pdf', :default => "Download PDF BTC Statement"), download_pdf_admin_user_path(@user),
:action => :download_pdf,
:params => { start_date: START_PLZ, end_date: END_PLZ },
:class => "btn btn-success btn-xs" %>
Могу ли я каким-либо образом использовать эти переменные JS и передавать их в мои методы generate_pdf при нажатии кнопки? В противном случае я мог бы использовать форму.
Любой ввод приветствуется.
Комментарии:
1.я думаю, вам нужно добавить правильное действие с
remote:true
опцией внутриbutton_to
apidock.com/rails/ActionView/Helpers/UrlHelper/button_to
Ответ №1:
Erb — это механизм создания шаблонов на стороне сервера, поэтому код выполняется на стороне сервера, тогда как JS-код находится на стороне клиента, поэтому, к сожалению, прямого пути нет. Но что мы можем сделать, так это создать другую форму для дат с параметром remote, установленным в true (RAILS AJAX FORM), поэтому после ее отправки мы можем загрузить button_to в view, и теперь у нас будут значения в параметрах. Должно сработать, я думаю.