Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Gems for rails

468 views

Published on

Gems for Rails
Gemas para el día a día

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Gems for rails

  1. 1. Gems for RailsGemas para el día a díaStephanie Burckhardt@sluthien
  2. 2. ProducciónException-notificationWheneverRansackPaper-trailChartkick+groupdate
  3. 3. Exception NotificationAdelantarse al bug, antes de que el cliente lo note
  4. 4. WheneverTrabajos cron para railsApuntar al binarioset :job_template, niljob_type :production_rake, cd :path && /var/www/rails/.rvm/bin/rake-ruby-1.9.3-p286 :task RAILS_ENV=productionevery 1.hour doproduction_rake "ccv:get_results"end
  5. 5. Ransack User.search(:first_name_cont => "Rya").result.to_sql=> SELECT "users".* FROM "users"  WHERE ("users"."first_name" LIKE %Rya%)User.search(:first_name_or_last_name_cont => "Rya").result.to_sql=> SELECT "users".* FROM "users"  WHERE ("users"."first_name" LIKE %Rya%    OR "users"."last_name" LIKE %Rya%)User.search(:age_in => 20..25).result.to_sql=> SELECT "users".* FROM "users" WHERE "users"."age" IN (20, 21, 22, 23, 24, 25)
  6. 6. Métodos RansackeqltlteqInContOtros
  7. 7. Paper-trailPermite protegerse de los cambios indeseadosEn el modelo:has_paper_trail•Elegir cuando guardar los cambios•Quién es el responsable del último cambio•Revertir cambios
  8. 8. Chartkick+groupdateGráficos rápidos<%= line_chartUser.group_by_day(:created_at).count%><%= column_chartTask.group_by_hour_of_day(:created_at).count %>si está registrado el binario:mysql_tzinfo_to_sql /usr/share/zoneinfo| mysql -u root mysql
  9. 9. DesarrolloAnnotateDebuggerBulletBetter errors+metarequest
  10. 10. AnnotateDocumentación de cada parte del modelo, a través de sección comentada en éste.# == Apariencia de modelo después de implementar Annotate## Table name: line_items## id :integer(11) not null, primary key# quantity :integer(11) not null# product_id :integer(11) not null# unit_price :float# order_id :integer(11)#class LineItem < ActiveRecord::Basebelongs_to :product
  11. 11. DebuggerLevantar zona de controlSeguimiento línea a líneaComandos :C= continuar ejecuciónN=siguiente líneaP= imprimir valor variable
  12. 12. BulletPreviene múltiples consultas a la base de datos , envezde una consulta que carga las relaciones del objeto deunavez.Mejorar el trato a las relaciones N+1Persona tiene muchas mascotas
  13. 13. Better errorsErrores y depuración en el navegador
  14. 14. FinGracias!

×