我不太确定正确的术语是什么,但我想要做的是在一个表单中(最好使用simple_form gem)有一个输入,:maximum,同时使用text字段和select框。用户可以在文本框中键入一个数字,然后从小时,天或月的下拉框中选择。所以21天,3个月,3个小时等等。当提交表单时,我会将其转换为几天并将其存储在数据库中。我知道如何在simple_form中更改输入类型,但是一个变量可以有两个输入吗?
答案 0 :(得分:4)
当然:)这是我的想法:
首先,在用户模型中定义访问者:
attr_accessor :thing, :another_thing, :and_another_thing
然后在你的视图中,'inside'form_for helper,你可以编写例如:
<%= form.input :thing, :as => :boolean %>
<%= form.input :another_thing, :as => :text %>
......或者你想要的任何东西。 (注意:我在这里使用formtastic
。如果你没有使用formtastic gem,你应该考虑使用Rails方法。)
最后,您在用户模型中定义了一个回调:
before_create :build_my_fancy_record
def build_my_fancy_record
self.storage_field = "#{thing} #{another_thing}"
end