2011-08-17 40 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