2011-05-31 28 views
5

我在想如何複選框在Rails中工作?數據庫裏面的表是什麼(整數,字符串等)?你如何給3個不同的值來選擇複選框,用戶只能選擇1(喜歡的顏色:紅色,綠色或藍色)?複選框如何在Rails中工作?

我是新來的rails,它有助於從頭到尾有一個解釋,因爲我看到很多示例,但是他們從一開始就沒有解釋任何事情。

謝謝。

回答

4

複選框和數據庫之間有區別。複選框是HTML。數據庫連接到您的模型,並且與複選框無關。

當您在HTML視圖中使用複選框時,表單將發送一些參數。默認情況下,此參數的值爲「1」(如字符串)。 Rails幫助器還創建了一個額外的隱藏輸入,它將與複選框輸入相同的名稱發送值「0」。解析參數Rails選擇第一個值,因此給定的參數在複選框被選中時被分配一個值「1」,如果沒有被選中則被賦值爲「0」。

現在,保存在數據庫中的值取決於模型中屬性的類型。如果您將給定的字段定義爲布爾值,那麼它將被存儲爲布爾值(因爲字符串「0」在Ruby中不被視爲「假」,所以存在一些魔力),如果將該屬性定義爲整數,那麼它將具有值1或0,如果它是一個字符串,你將有「1」或「0」。

關於複選框的這3個值,我將使用一個<select>或一個單選按鈕。

Red: <input type="radio" name="colour" value="red" checked="checked"/> 
Green: <input type="radio" name="colour" value="green" /> 
Blue: <input type="radio" name="colour" value="blue" /> 

查看ActionView::Helpers::FormHelper#radio_button方法。

+1

這與我的回答實際上是一樣的,或者你應該對我說同樣的話? :) – 2011-05-31 11:06:03

+1

@Ryan:我是第一個開始輸入答案的人,只是我打字速度較慢。我們只是想同樣的事情;-) – Arsen7 2011-05-31 11:10:19

+3

@ Arsen7:我甚至不知道爲什麼我們要互相輸入評論。我們應該能夠通過我們共同的思想進行溝通。 – 2011-05-31 11:25:12