2012-02-01 144 views
0

我需要一種方法來在Rails 3中創建一個鏈接,它將發送帶有多個參數的發佈請求並且不會導致重新加載。我是用一種形式:Ruby on Rails鏈接請求發送

= form_for Vote.new, :remote => true do |f| 
    .actions 
    = f.submit 'Vote' 
    = hidden_field_tag('question', q.id) 
    = hidden_field_tag('seat', @seat.id) 

但它減緩我的渲染時間縮短了不少,我不希望有一個提交按鈕。有沒有其他方式提交這樣的表單,而不使用按鈕?

我試過= link_to等,但似乎無法讓參數正常工作。

回答

1

你可以使用javascript來做一個鏈接做一個表單發佈時單擊(雜亂,但類似於腳手架如何刪除)或使用css風格的按鈕看起來像一個鏈接。

+0

+1 「使用CSS樣式按鈕,看起來像一個鏈接」 - 狡猾! – 2012-02-01 03:37:05

+0

是的,但仍然渲染大量表單比渲染大量鏈接要慢。當有25個form_for和一個鏈接的問題時,每個視圖渲染大約40ms – JRPete 2012-02-01 05:54:38

2

我會用使用參數的鏈接是這樣的:

= link_to "Post", new_vote_path(vote: {question_id: question.id, seat_id: seat.id}, remote: true, method: :post, rel: "nofollow" 

我用這個沒有遠程:真實的,但我不明白爲什麼它不應該用jQuery軌工作。如果它不起作用,我會假設jquery $ .ajax對象沒有設置該方法的類型。您可能可以覆蓋此內容或創建您自己的單擊事件綁定。

僅供參考 - 的link_to API: http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to