2011-05-25 19 views
1

一個的link_to我有控制器:Rails的 - 如何建立這使該控制器的更新

class GroupRequestsController < ApplicationController 

    def update 
    @group_request = GroupRequest.find(params[:id]) 

    respond_to do |format| 
     if @group_request.update_attributes(params[:group_request]) 
     format.js 
     else 
     format.js 
     end 
    end 
    end 

在我看來,我有:

<button type="button" class="button positive tiny">Add</button> 
<button type="button" class="button tiny">Ignore</button> 

我怎樣才能讓在點擊這些按鈕,做一個遠程調用控制器的更新方法作爲決定參數的添加或忽略?

謝謝

回答

1

使用單獨的表格。

-form_for :group_request, :remote => true do |f| 
    =f.hidden_field :decision, "Add" 
    %button{:type => "button", :class => "..."} Add 

-form_for :group_request, :remote => true do |f| 
    =f.hidden_field :decision, "Ignore" 
    %button{:type => "button", :class => "..."} Ignore 

我使用HAML語法,因爲如果你不使用HAML,你應該。這是發送值的唯一一致方式。 Button標籤有一個「value」屬性,但它在所有主流瀏覽器中都不被支持,所以你不能依賴它。不幸的是,這意味着你必須做一堆令人討厭的樣式來讓按鈕顯示在一起。

我能想到的唯一的其他選擇是使用純JS來使按鈕像表單一樣行事,但我不能推薦,因爲它不會優雅地退化。

+0

謝謝我對錶單標記的想法有點驚訝。好奇的是,這真的是最好的方法?這將是很多頁面中的表單標籤。使用遠程鏈接不好嗎? – AnApprentice 2011-05-25 19:59:47

+0

你不能用鏈接將數據真正發送到服務器,你只能在查詢字符串中發送數據。在頁面上顯示大量表單沒有任何問題。定位標記是GET和DELETE請求哪些表單標記是POST和PUT請求。 – 2011-05-25 22:56:46

相關問題