2011-08-17 15 views
5

No estoy muy seguro de cuáles son los términos correctos, pero lo que estoy tratando de hacer es en una forma (preferentemente usando la gema simple_forma) tener una de las entradas,: máximo, usar ambos un campo de texto y un cuadro de selección. El usuario debe escribir en el cuadro de texto un número, y luego seleccionar de un cuadro desplegable de horas, días o meses. Así que 21 días, 3 meses, 3 horas, etc. Cuando se envió el formulario, lo convertía en días y lo almacenaba en la base de datos. Sé cómo cambiar el tipo de entrada en simple_form, pero ¿es posible tener dos entradas para una variable?entrada simple_form con múltiples campos

+0

Creo que se puede use 'attr_accessor's y luego procese la lógica más adelante, en una devolución de llamada como before_save. – socjopata

+0

¿Podría explicar cómo se usaría attr_accessor? – Alexei

Respuesta

4

seguro :) Aquí está mi idea:

En primer lugar, se definen descriptores de acceso en su modelo de usuario:

attr_accessor :thing, :another_thing, :and_another_thing 

Luego, en su opinión, 'interior' form_for ayudante, se podría escribir por ejemplo:

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

... o lo que quieras. (Nota: Estoy usando formtastic aquí se debe considerar el uso de métodos Rieles si no se está usando joya Formtastic..)

Por último, se define una devolución de llamada en el que el modelo de usuario:

before_create :build_my_fancy_record 

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

¡Funciona como un amuleto, muchas gracias! – Alexei

Cuestiones relacionadas