2011-06-28 59 views
4

基本上,我試圖創建一個動態組的複選框,在同一表單中選擇一個類別。例如,用戶會從select中選擇一個類別,然後出現相應子類別複選框的列表。如何創建Formtastic「部分」

我以前只用過這個選擇,但這樣做容易得多,因爲您只需提供一組通用選項。複選框(特別是formtastic)有很多相應的標記,我寧願不生成自己。

我的問題是如何讓formtastic創建只有正確的複選框,但仍然有他們的名字和ID字段包含所有正確的嵌套信息。我希望它的行爲與以下內容完全相同,但僅輸出最後一行來發送ajax。

= semantic_form_for @user do |u| 
    = u.inputs :name, :age 
    = semantic_fields_for :job do |f| 
    = f.input :category, :as => :select, :collection => Category.all 
    = f.input :subcategory, :as => :check_boxes, :collection => # This is what needs to be dynamic 

我試着只用包裹在一個通用semantic_fields_for的最後一行,但字段名稱不再正確。

你會怎麼做?

回答

0

我想試試這個:

= semantic_fields_for @user do |u| 
    = semantic_fields_for :job do |f| 
    = f.input :subcategory, :as => :check_boxes, :collection => some_thing 

我敢肯定,應該工作。

0

您需要使用助手並將其定義爲方法。例如:

def form_boxes(f) 
    f.input :subcategory, :as => :check_boxes, :collection => stuff_goes_here 
end 

,然後調用您的視圖:

= form_boxes(f) 
+0

如果你想創建整個表單,這將工作,但問題仍然是如何只呈現複選框本身。這樣做的目的是動態創建一組過濾的複選框以從ajax調用中返回。 – Luke

+0

啊,我現在看到了真正的問題。 – thomasfedb