Pregunta

Estoy usando rspec para la prueba y Hornsby escenarios para gráficos de objetos utilizados en las pruebas.

¿Es una buena práctica para inicializar columnas de caché contador a 0 el valor en lugar de dejarlos sin inicializar (cero)? O debería definir el valor por defecto de las migraciones que crean esas columnas de caché de venta libre?

¿Fue útil?

Solución

Sí, se debe establecer el valor predeterminado. De lo contrario, usted tiene que operaciones especiales caso de matemáticas para manejar los nulos.

Vamos a decir que tenía una matriz de objetos postales y que quería conseguir sumar el número de comentarios.

Si inicializa a cero @posts.sum(&:comment_count) será, pero si no lo hace puede ser que no, ya que se producirá un error en cero.

Yo recomiendo la definición de su columna de la siguiente manera:

add_column :posts, :comments_count, :integer, :default => 0, :null => false

Otros consejos

Rieles sólo tiene que enviar el siguiente código SQL

UPDATE posts SET comment_count = comment_count + 1, WHERE id IN (10, 15)

Así que, o el PP sabe que no definido 1 == 1 o rieles hace algo de inicialización de su propia. En cualquiera de los casos esto parece un comportamiento estable a mí, así que no se los puso a cero y guardar el trabajo. Dado que usted no será capaz de ver si lo hizo la inicialización de todos modos (que funciona de la misma sin ella) cómo va a probarlo. Y si no se garantiza que ser inicializado por lo que realmente han ganado en términos de futuro de pruebas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top