簡體   English   中英

通過link_to rails 4將參數傳遞給控制器​​方法

[英]pass params to controller method via link_to rails 4

我想將參數從text_field_tag傳遞到控制器,但不會通過link_to傳遞

      <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]。 關於如何解決這個問題的任何線索?

謝謝

根據建議,我這樣做了,但是我仍然面臨着同樣的問題,因為它沒有通過參數

       <%= 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 %>

鏈接是獨立的:它們只在乎自己的論點。

如果要從頁面上的字段提交參數,則需要將這些字段包裝在表單中並提交表單。

如果要將數據放入鏈接,則可以將link_to更改為:

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

這將發送作為文本字段標簽的一部分輸入的值。

<%= 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],請在操作中將其設置為變量,

@page_number = params[:page]

html應該更改為

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

我不建議為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 ,這是Rails UJS的ajax包裝器。 因此,如果要檢查發生了什么,則需要確保已從表單聲明中刪除remote: true

-

如果要靜態設置該值(IE用戶無法更改),則需要查看button_to ,因為這可以通過hidden字段傳遞params

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

這樣做的問題是您無法更改視圖中的頁面(在params哈希中分配的值將是靜態的)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM