2014-02-13 51 views
1

我有這樣的代碼:傳遞從select_tag到PARAMS選定的值,而不具有的form_tag

<div class="export-buttons"> 
    <div class="row"> 
     <div class="col-lg-offset-4"> 
      <%= label_tag :year, "Any" %> 
      <%= select_tag :year,options_for_select((2014..2040).map{|x| x.to_s}),name:"params[year]" %> 

     </div> 
    </div> 
    <div class="row"> 
     <div class="col-lg-4 col-lg-offset-4"> 
      <%= link_to "Revenue summary", revenue_summary_path(format:"pdf"),class:"btn btn-bg btn-default", role:"button" %> 
     </div> 
    </div> 
    <div class="row"> 
     <div class="col-lg-4 col-lg-offset-4"> 
      <%= link_to "Fees summary", fees_summary_path(format:"pdf"),class:"btn btn-bg btn-default", role:"button" %> 
     </div> 
    </div> 
</div> 

我想通過在select_tagparams選定的值。但是我沒有form_tag,因此也沒有Submit按鈕。

是否有「嵌入」它params哈希裏面的方法嗎?或者我確實需要form_tag?在後一種情況下,這將是最好的辦法,2提交 - 按鍵+一個路徑+的if/else @Controller

+0

爲什麼你會不想表單標籤? – lurker

+0

原因我有兩個提交按鈕和兩個不同的路徑。我想避免控制器中的if/else。 – lllllll

+1

您可以在按鈕中指定路徑。您需要填寫表單才能進行提交。 – lurker

回答

1

如果你真的想避免表單標籤,也因爲你想有多個下載鏈接,這將只是發出select_tag的附加參數到後端這可能似乎是合乎邏輯。你可以使用相同的JavaScript。

  • 而不是的link_to,您可以使用綁定到JavaScript函數的onclick這些鏈接。
  • 綁定的功能將執行的URL之前,它會通過JavaScript的URL追加選擇濾波器的當前值。
+0

這是一個很好的建議,我會保留它作爲一個選項。不過,我寧願有一個無Javascript的方法。 – lllllll

+1

您在兩個按鈕上有固定的「鏈接」。在不修改的鏈接(通過JS等),或使用「形」,您將無法通過額外的數據到後端.. –

+0

這實際上回答我原來的問題,即。是否有辦法在沒有表格的情況下「嵌入」信息。我看到的答案是** NO **。我會保持它的標準,並使用帶有雙提交按鈕的'form_tag'。謝謝! – lllllll