2011-08-17 67 views
5

我不太確定什麼是正確的術語,但我想要做的是在一個窗體(最好使用simple_form gem)有一個輸入,:最大值,同時使用一個文本框和選擇框。用戶可以在文本框中鍵入一個數字,然後從小時,天或月的下拉框中進行選擇。所以21天,3個月,3小時等。當表單提交時,我會將其轉換爲日期並存儲在數據庫中。我知道如何在simple_form中更改輸入類型,但是可以爲一個變量提供兩個輸入嗎?simple_form輸入與多個字段

+0

我想你可以使用'attr_accessor's,然後在像before_save這樣的回調中處理邏輯。 – socjopata

+0

您能否詳細說明如何使用attr_accessor? – Alexei

回答

4

當然:)這是我的想法:

attr_accessor :thing, :another_thing, :and_another_thing 

那麼在你看來,「內部」的form_for助手,你可以寫,例如:

首先,你在你的用戶模型中定義存取:

<%= form.input :thing, :as => :boolean %> 
<%= form.input :another_thing, :as => :text %> 

...或任何你想要的。 (注:我使用formtastic這裏,您應該考慮,如果你不使用formtastic寶石使用Rails方法。)

最後,在你所定義的回調用戶模型:

before_create :build_my_fancy_record 

def build_my_fancy_record 
    self.storage_field = "#{thing} #{another_thing}" 
end 
+0

工程就像一個魅力,非常感謝你! – Alexei