2013-06-21 8 views
0

對於simple_form讀取我的複選框集合,我感到有點困惑。也就是說,除了我的選擇之外,我還希望在其他方面加上什麼。自述文件有:first, :last,但並不能真正解釋這些單詞服務器的用途。使用simple_form複選框的參數數量錯誤(2代表4個)

下面是我想要的兩個不同的複選框集合。我還應該提到,每個複選框都與DB中的布爾字段相關,並且它們與列名稱相同。

<%= f.collection_check_boxes :options, [[false, 'App'], [false, 'DB'], [false, 'WCF']] %> 
<%= f.collection_check_boxes :options, [[false, 'Com1'], [false, 'Com2'], [false, 'BofA']] %> 

我忘了提,錯誤我收到的時候我嘗試加載這個頁面

wrong number of arguments (2 for 4) 
+0

它仍然沒有解釋什麼':first'和':last'用於作爲參數。我總是應該首先和最後?這些可能會改變嗎?自述文件似乎沒有說 – mhopkins321

+0

我並不是說那個鏈接回答了你的問題。我只是爲了答覆者的便利而發佈它,所以他們可以很快找到你正在談論的自述文件。 –

回答

1

此錯誤只是意味着你<%= f.collection_checkboxes %>需要兩個參數,但你給它4.記住這是爲了將來的參考,因爲這個錯誤很容易做出。

右鍵從下面這個例子:

form_for @user do |f| 
    f.collection_check_boxes(
    :options, [[true, 'Yes'] ,[false, 'No']], :first, :last 
) do |b| 
    b.label { b.check_box + b.text } 
    end 
end 

的rubydoc.info網站狀態如下:

也可能給應產生的複選框+標籤塊。爲了與煙標的複選框,例如如上:從我的這個:first:last理解

所以代表的標籤,因爲它是。所以你會有兩個複選框。這可以是truefalse,但是在該選項數組之外,您正在提供該類的這些實例的標籤。所以我們來舉個例子。即爲標籤提供類User的實例:first:last。希望這可以澄清事情。鏈接提供如下:

Ruby Doc- SimpleForm collection_check_boxes

+0

我得知我需要傳遞更多東西。在閱讀我時,通過的另外兩個參數是':first'和':last',但是我不知道這些代表對我或simple_form – mhopkins321

+0

@ mhopkins321剛剛更新這個答案應該爲你澄清一些事情:) – David

+1

我不認爲'first'和'last'在類User上被調用。它們在你作爲第二個參數傳遞的數組的每個子數組上被調用。 ':first'是參數'value_method':「應用於數組集合以獲取值的方法」。 ':last'是參數'label_method':「應用於數組集合以獲取標籤的方法」。因此,例如'[true,'是']。first'產生'true'作爲值,'[true''是']。last'產生''Yes''作爲標籤。 –

相關問題