2012-12-27 81 views
16

我有我的看法的Rails:simple_form:充分利用複選框收集空字符串

<%= f.input :role_names, as: :check_boxes, collection: @program.role_names %>

以下代碼,每當我提出我得到的值一樣["admin, "moderator", ""]東西的形式,但我期待像["admin, "moderator"],這是爲什麼?

此外,我做了一個檢查元素,最後一個複選框後,在同一個控件組中有一個<input name="user[role_names][]" type="hidden" value="">標記。我想這是在params[:user][:recipient_role_names]的最後加上。

我該如何處理?我知道我可以做reject(&:blank?),但在params[:user][:recipient_role_names]有更清晰的方法嗎? 我也想知道爲什麼input元素被添加?它是簡單形式的錯誤還是我做錯了什麼?

其他信息:

  1. simple_form寶石版本:2.0.4
  2. 軌版本:3.2.8

回答

16

這是一個Rails的功能。您可以在Rails中4禁用它,你可以閱讀更多關於這對simple form issue #603Rails issue #5402

+0

完美。在5分鐘就會接受..一段時間約束..現在不能接受..順便說一句我很想了解爲什麼......你有什麼想法,爲什麼這是一個鐵軌功能?我的意思是他們爲什麼做這個功能?這是否應該解決其他問題,如果是的話那是什麼?如果你可以提前解釋一下.. thx會很好.. – n00b

+2

你可以在這裏閱讀解釋http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-check_box (它是Gotcha部分) –