Acabo de descubrir la gema rails-settings y ahora necesito hacer una página de administrador que me permita editar los valores de configuración. ¿Cómo crearía un controlador de configuración con una vista de edición que pueda cambiar la configuración amplia de esta aplicación dinámica?¿Cómo hago una página de configuración de configuraciones para la joya de los ajustes de rieles?
Respuesta
No he usado esta gema, pero parece que debería ser bastante directa. Puesto que utiliza un modelo de base de datos de respaldo, sólo tendría que crear un controlador de forma normal:
rails g controller Settings
Desde aquí se definiría su acción index para reunir todos los ajustes individuales para su visualización en la vista:
def index
@settings = Settings.all
end
Luego, en la vista que se puede configurar un bucle para mostrarlos:
<% @settings.each do |setting| %>
<%= setting.var %> = <%= setting.value %>
<% end %>
en cuanto a la edición ... esto podría ser un poco complicado ya que por defecto rieles esperaría que presenten una sola settin g a la vez para editar. Podrías hacerlo de esta manera, pero a menos que implementes la edición con ajax puede ser tedioso y no intuitivo.
Otra forma sería configurar su método de actualización para aceptar todas las configuraciones individuales a la vez, recorrerlas y actualizar cada una con nuevos valores. Podría ser algo como esto:
// The /settings route would need to be setup manually since it is without an id (the default)
<%= form_tag("/settings", :method => "put") do %>
<% @settings.each do |setting| %>
<%= label_tag(setting.var, setting.var) %>
<%= text_field_tag(setting.var, :value => setting.value) %>
<% end %>
<%= submit_tag("Save Changes") %>
<% end %>
Esta es la Salida todos los ajustes (dado que han sido asignados a las variables @settings) con el nombre var como la etiqueta y el valor actual como el valor del campo de texto. Suponiendo que el enrutamiento esté configurado, cuando envíe este formulario, la acción que lo reciba deberá incluir todas las configuraciones nuevas en la variable params. A continuación, puede hacer algo como esto en la acción:
def update
params.each_pair do |setting, value|
eval("Settings.#{setting} = #{value}")
end
redirect_to settings_path, :notice => 'Settings updated' # Redirect to the settings index
end
Esto puede no ser la mejor manera en función de la frecuencia con que editar la configuración y el número de ajustes que tienen ... pero esto es una solución posible.
Mierda, eval es una bandera importante. Si va a hacer algo como eso, puede usar un 'enviar' y ese tipo de detalle de configuración de atributo debe implementarse desde su modelo de Configuración si va a hacerlo. No le dé visibilidad a su controlador en el funcionamiento interno de un modelo. – unflores
Estaba buscando algunas sugerencias para esto y encontré otra respuesta a esto que es muy simple y elegante, para cualquiera que busque esto más tarde. Simplemente configura accesos dinámicos en su modelo, lo que permite que su formulario tenga campos de configuración como sus atributos normales. Un ejemplo se puede encontrar en la respuesta original:
- 1. ajustes de configuración Override
- 2. Ruby copia de seguridad joya - configuraciones compartidas?
- 3. rieles ActionMailer ignora los ajustes en environment.rb
- 4. ¿Cómo convertir una aplicación de rieles a una joya?
- 5. Cómo forzar rieles utilizar joya de la versión X
- 6. joya instalar rieles no instala los carriles
- 7. Roca Mongo ajustes de configuración mongodb
- 8. Android: utilice una hormiga para crear configuraciones de compilación que modifiquen los valores de configuración
- 9. Phonegap ¿cómo es posible tener una página de "configuraciones" desde el menú de la aplicación?
- 10. Transferir todos los ajustes de ReSharper entre PC
- 11. ¿Configuraciones de la aplicación Rails?
- 12. rieles, utilizando siempre joya en el desarrollo
- 13. ¿Cómo hago referencia a la configuración de la aplicación de un proyecto desde otro?
- 14. Cómo establecer los ajustes predeterminados de Action Mailer después de ejecutar config/initializers?
- 15. ¿Dónde debo almacenar la configuración de configuración de todo el sitio para una aplicación de Rails?
- 16. ¿Cómo sincronizar la configuración entre las configuraciones de git?
- 17. ¿Qué patrones de diseño se pueden aplicar al problema de ajustes de configuración?
- 18. Organización de ajustes en Django
- 19. Mejores prácticas en las configuraciones de configuración
- 20. ¿Cómo hago una página de archivo de Wordpress para publicaciones personalizadas y taxonomías?
- 21. ¿Cómo se configuran los archivos de configuración específicos de la configuración de la solución?
- 22. Agregar configuraciones a la configuración
- 23. ¿Cómo hago una numeración de página personalizada en látex?
- 24. ¿Cuál es la mejor manera de almacenar la configuración específica de la aplicación en los rieles?
- 25. Configuraciones de configuración predeterminadas para un nuevo repositorio de git?
- 26. ¿Cómo se leen los ajustes de "Separador de lista" de la configuración regional del panel de control?
- 27. Timecop joya para los alcances
- 28. Magento: bloques estáticos y migración de configuraciones de configuración
- 29. sitio de administración de Django: ¿cómo crear una sola página para configuraciones globales?
- 30. Configure los ajustes de autenticación IIS utilizando la clase ServerManager
No es el único buscando este – mhenrixon