veces necesitamos forma sin la creación del modelo - por ejemplo campo de búsqueda o correo electrónico, donde se deben enviar algunas instrucciones. ¿Cuál es la mejor manera de crear estos formularios? ¿Puedo crear un modelo virtual o algo así? Me gustaría usar formtastic, pero no form_tag.modelo virtual y form_for (o Formtastic)
Respuesta
En primer lugar, Formtastic no necesita un modelo en todos los casos, aunque ciertamente funciona mejor y requiere menos código con un modelo.
Al igual que Rails propio integrado en form_for
, puede pasar en un símbolo en lugar de un objeto como primer argumento, y Formtastic va a construir la forma y publicar los parametros basado en el símbolo. Por ejemplo:
<% semantic_form_for(:session) do |f| %>
...
<% end %>
Esto hará que los valores del formulario disponible para su controlador como params[:session]
.
En segundo lugar, un modelo no significa un modelo ActiveRecord. Lo que quiero decir es, Formtastic funciona con cualquier instancia de una clase que charlatanes como un modelo de ActiveRecord.
Un ejemplo clásico de esto es que muchas personas están utilizando Authlogic para la autenticación con Formtastic. Parte de Authlogic es la idea de un modelo UserSession, que funciona bien:
controlador:
def index
@user_session = UserSession.new
end
Forma:
<% semantic_form_for(@user_session) do |f| %>
<%= f.input :login %>
<%= f.input :password %>
<% end %>
Esto hará que los datos del formulario disponible en el controlador como params[:user_session]
.
Es Realmente No es tan difícil crear una instancia modelo para concluir las preocupaciones de su modelo. ¡Siga implementando los métodos que Formtastic espera hasta que lo haga funcionar!
O simplemente crear un formulario con form_for y deja en blanco la referencia del modelo. por ejemplo <% form_for "", :url=>some_url do |f| %>
<%= f.text_field "some_attribute" %>
<%= submit_tag "submit" %>
Usted puede recuperar los valores por params simplemente diciendo: [some_attribute] en su controlador.
le agradecería un comentario en el voto hacia abajo. – Sid
Diría que es porque OP está buscando una solución semántica, idealmente usando Formtastic, y está sugiriendo un paso atrás. –
default_language.rb
class DefaultLanguage attr_accessor :language_id end
foo_controller.rb
def index @default_language = params[:default_language] || Language.find_by_name("English") end
index.erb
<% semantic_form_for @default_language do |form| %> <% form.inputs :id => 'default_language' do %> <%= form.input :id, :as => :select, :collection => @languages, :required => false, :label => "Primary Language:", :include_blank => false %> <% end %> <% end %>
Solía AJAX para publicar el formulario cuando el valor cambiado.
- 1. n-Modelo Forma Formtastic
- 2. Diferencia entre: modelo y @model en form_for?
- 3. errores Formtastic y base
- 4. Diferencia entre form_for y form_tag?
- 5. STI y form_for problem
- 6. Formtastic campos de formulario modelo anidados (carriles 3)
- 7. Ruby on Rails: ¿Son equivalentes "form_for (: product, ...)" y "form_for (@product, ...)"?
- 8. form_for y ámbitos, carriles 3
- 9. Activeadmin y Formtastic: formulario no responde: tamaño
- 10. Escriba un atributo virtual del modelo ActiveRecord
- 11. ¿Debería escribir "público virtual" o "público virtual" en herencia virtual?
- 12. ¿Cómo puedo crear un formulario en Rails sin tener que usar form_for y una instancia modelo?
- 13. form_for with datetime_select
- 14. ¿Método abstracto o virtual?
- 15. Fórmula formtastic set y id del formulario
- 16. ¿Cómo se comparan Formtastic y simple_form?
- 17. Formtastic seleccione la agrupación
- 18. Ruby on Rails: use form_for en un modelo, y voltee el valor del formulario
- 19. Form_for con url, formato y opciones html
- 20. Rails Rutas espacios de nombres y form_for
- 21. Cómo crear una contraseña y confirmación cuando se usa form_for?
- 22. Obtener el ID del objeto cuando dentro form_for o fields_for
- 23. Emulador AS400 o máquina virtual
- 24. Usando campos de una asociación (has_muy) modelo con formtastic en rails
- 25. Diferencia entre form_for, form_tag?
- 26. carriles form_for styling
- 27. form_for con recursos anidados
- 28. Usando select_month en form_for
- 29. Validación: modelo o modelo de vista
- 30. Rails form_for with collection_select
¡Acepto tu desafío!Aquí encontrará una clase que no sea ActiveRecord para "resumir las preocupaciones de su modelo". http://dondoh.tumblr.com/post/4142258573/formtastic-without-activerecord – dondo