2012-10-30 39 views
0

我在HTML.erb現在訪問HTML標籤一個RUBY控制器

<form> 
    <input id="do" type="hidden" value="0" /> 
    <button type="submit" value="Next">SUBTRACT</button> 
</form> 
<form> 
    <input id="do" type="hidden" value="1" /> 
    <button type="submit" value="Next" >ADD</button> 
</form> 

當我點擊任何2個按鈕的下面的代碼,我要檢查輸入id的值=」做「在我的紅寶石控制器。語法是什麼樣子?

回答

1

這應該在控制器中最佳地被分成兩個操作,每個表單將提交(使用action屬性)。

<form action='add'> 
    <input id="do" type="hidden" value="0" /> 
    <button type="submit" value="Next">SUBTRACT</button> 
</form> 
<form action='subtract'> 
    <input id="do" type="hidden" value="1" /> 
    <button type="submit" value="Next" >ADD</button> 
</form> 

#in your controller 
def add 
    # do the addition processing 
end 

def subtract 
    # do the subtraction processing 
end 

如果你真的需要實現它們1分的動作,那麼你可以使用Rails的params對象。

+0

我試過這個,但是當我點擊任何按鈕時,它會重定向到一個新的URL本身.... localhost:3000/add。我在控制器中只有一個函數:def index ....我擁有所有的邏輯。 –

+0

我不認爲在控制器中只有1個動作是處理所有事件的最佳設計。您需要將它們分爲適當的操作。我建議你使用Rails生成器來創建一個Rails動作的藍圖/例子,以及它如何使用它的RESTFUL動作。對於手頭的問題 - 您可以定義「add」和「subtract」並在其中嵌入您的邏輯。 – tamersalama

+0

我明白你的觀點,但與其他人相比,加減操作並沒有太大的影響。它只是改變了一個ruby變量的值。 –

0

您需要設置name屬性,名稱屬性得到params哈希表

<form> 
    <input id="do" name="subtract" type="hidden" value="0" /> 
    <button type="submit" value="Next">SUBTRACT</button> 
</form> 
<form> 
    <input id="do" name="add" type="hidden" value="1" /> 
    <button type="submit" value="Next" >ADD</button> 
</form> 

在控制器發送到控制器,

params[:subtract]params[:add]將取決於減去值點擊或添加點擊。

+0

如何在ruby控制器中檢查輸入id =「do」的值? –