2010-07-26 40 views
0

我試圖爲Formtastic構建一個自定義控件,它需要一個緯度和一個經度,但是,我不知道如何去傳遞方法名稱。理想的情況是我必須在semantic_form_for塊以下幾點:多個參數的自定義Formtastic控件

f.input :latitude, :longitude, :as => :location 

我也試着與陣列經過:

f.input [:latitude, :longitude], :as => :location 

但在這兩種情況下,這種失敗 - 先上的數參數,所述第二對第一參數不是一個符號。

有沒有任何方法將兩種方法傳遞到我缺少的#input中?

回答

1

好的,我已經通過編寫a plugin for Formtastic對此進行了整理。

我已經添加了一個multi_input函數,它可以接受任意數量的參數和一個(可選的)選項散列。我還添加輸出該地圖控制和JS(框架不可知)一個map_input類型。

在上面的鏈接的更多細節。

0

您不能通過多種方法來單個輸入。你可以做的是對你的模型的訪問調用,呃,lat_long或類似的,這可能會在你的location_input認識,並知道如何處理的格式返回一個字符串或數組或什麼的。

+0

謝謝賈斯汀(爲你的答案和Formtastic:D) - 我一直在想這個,我認爲通過輸入可能是錯誤的事情 - 它打破封裝,如果模型需要提供特定的方法來查看東東。 據我所知,我最好在SemanticFormBuilder中創建一個類似於#input和#commit_button的新方法 - 也許#multi_input? – Codebeef 2010-07-27 12:32:30