2016-02-02 4 views
0

Я хочу передать параметры из более text_field_tag ​​в мой контроллер, но это не получить прошло через link_toпасс PARAMS к контроллеру метод через LINK_TO рельсам 4

 <div class="row" id="page-search"> 
     <%= hidden_field_tag :page, params[:page], class: 'form-control', value: '1'%> 
     <%= text_field_tag :page, params[:page], class: 'form-control', id: 'show-page'%> 
     <%= link_to 'Go', currencies_path, :remote => true, method: :get, class: "btn btn-default", id: "show-button" %> 
     </div> 

метод контроллера

 def index 
     @currencies = Currency.all.page(params[:page]).per(10) 
     end 

Он должен позвонить этот метод, который он делает, но он не передает params [: page]. Какую-либо подсказку о том, как решить эту проблему?

Благодаря

на основе предложений, я сделал это, но я по-прежнему сталкивается с такой же вопрос, как оно не проходят Params

 <%= form_tag currencies_path, :method => :get do -%> 
      <%= text_field_tag :page, params[:page], class: 'form-control', id: 'show-page'%> 
      <%= hidden_field_tag :page, params[:page], class: 'form-control', value: '1'%> 
      <%= submit_tag 'Go' %> 
     <% end %> 
+0

Возможный дубликат [ pass по ссылке \ _to ruby ​​on rails] (http://stackoverflow.com/questions/1898737/pass-parameter-by-link-to-ruby-on-rails) – Bijendra

+0

@ Биджендра - это другой вопрос. Урс основан на передаче данных объекта.моя основана на pasing text_field_tag ​​ввода –

ответ

1

ссылки являются автономными: они заботятся только о том, что в их собственные аргументы.

Если вы хотите представить параметры из полей на странице, вам необходимо обернуть эти поля в форму и отправить форму.

Если вы хотите поместить эти данные в ссылку, то вы можете изменить link_to таким образом:

<%= link_to 'Go', currencies_path(page => 1), :remote => true, method: :get, class: "btn btn-default", id: "show-button" %> 
+0

Я хочу быть основан на вводе text_field_tag, поэтому значение страницы не может быть статическим, так как u hv помещает его. Есть ли все равно, чтобы это сделать? if i do page => params [: page] will tht work –

+0

Измените его на форму. –

+0

i отредактирован и изменен на форму, но все же он не отправляет –

0

Я не сторонник представления и то же значение для обоих hidden и text полей:

<%= form_tag currencies_path, method: :get do %> 
    <%= text_field_tag :page, params[:page], class: 'form-control', id: 'show-page' 
    <%= submit_tag "Go" %> 
<% end %> 

Вы должны помнить, что в вашей текущей форме используется remote: true, которая является оболочкой ajax для Rails UJS. Таким образом, если вы хотите проверить, что происходит, вам нужно убедиться, что вы удалили remote: true из объявления формы.

-

Если вы хотите установить значение статически (IE пользователь не может изменить), вы хотите посмотреть на button_to, так как это может пройти params через hidden поле:

<%= button_to "Go", currencies_path, method: :get, params: { page: "1" } %> 

Проблема заключается в том, что вы не можете изменить страницу в представлении (значение, которое вы назначаете в параметре hash, будет статическим).

+0

Удаленная форма все равно будет отправлена, она просто сделает это с помощью вызова ajax. Он выглядит почти таким же в журнале, за исключением ответа. –

+0

Да, вот что я имел в виду. ОП сказал, что «ничего не происходит»/«не будет подчиняться» - просто намекнул на то, что удаленная система будет казаться, что ничего не появится, пока не будет обнаружен ответ. –

+0

ах я вижу. :) OP: просмотр файла журнала. –

0

Это отправит значение, которое вводится как часть тега текстового поля.

<%= form_tag currencies_path, :method => :get do %> 
     <%= text_field_tag :page, nil, class: 'form-control', id: 'show-page'%> 
     <%= submit_tag 'Go' %> 
<% end %> 

Я не уверен, почему вы устанавливаете params [: page] в качестве значения для текстового поля. Или я что-то пропустил?

В случае, если вы хотите использовать Params [: страницы], установите его в переменной в действии,

@page_number = params[:page] 

HTML, должна быть изменена на

<%= text_field_tag :page, @page_number, class: 'form-control', id: 'show-page'%>