Pular chamadas de AR
Essa velha questão ainda surge muito: eu tenho esse callback que manda e-mail, faz café e tira $ 10 do meu cartão de crédito. Estou criando este objeto em um …
Continuar lendoConteúdo para você se capacitar em programação
Essa velha questão ainda surge muito: eu tenho esse callback que manda e-mail, faz café e tira $ 10 do meu cartão de crédito. Estou criando este objeto em um …
Continuar lendoSuponha que você tenha o seguinte escopo nomeado: class Escopo da tarefa : ativo, -> {where (“LOTS OF LOGS OF FUNKY SQL”)} end e você também deseja ter #active? atributo …
Continuar lendoEscape algum caractere especial em “LIKE” na expressão where com Arel. Quando houver algum “%” em str em where(Item.arel_table[:name].matches(“%#{str}%”)) “%” em str deve ser escapado. O seguinte fragmento escapa desse …
Continuar lendoVocê pode chamar isso do console: ActiveRecord::Migration.change_column :referrals, :status, :integer, :null => false, default: 0
Continuar lendoValidador Rails3 personalizado para validar a contagem de registros na associação. class AssociationCountValidator < ActiveModel::Validations::LengthValidator MESSAGES = { :wrong_length => :association_count_invalid, :too_short => :association_count_greater_than_or_equal_to, :too_long => :association_count_less_than_or_equal_to }.freeze def initialize(options) …
Continuar lendoQuando você obtém um objeto somente leitura, por exemplo _project = Project.accessible_by_user(current_user).find(params[:project_id])_project.readonly? # => true E você deseja editá-lo, você deve adicionar : readonly => false para encontrar como segundo …
Continuar lendoIsso é muito útil se você precisar descobrir (temporariamente) onde suas consultas de código foram originadas. Usei isso para aumentar a velocidade de uma exportação. subscription = ActiveSupport::Notifications.subscribe(‘sql.active_record’) do |*args| …
Continuar lendoSe você apenas executar a migração com a instrução drop column, o ActiveRecord em sua instância do aplicativo continuará a emitir consultas com itens não existentes na lista de colunas, …
Continuar lendoEm seu config / application.rb initializer “postgresql.no_default_string_limit” do ActiveSupport.on_load(:active_record) do ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::NATIVE_DATABASE_TYPES[:string].delete(:limit) endend Não se esqueça de executar rake db: migrate Fonte: http://blog.hasmanythrough.com/2011/6/1/limitless-strings-for-postgresql
Continuar lendotl; dr query = Order.unscoped.where(uuid: uuids, id: ids)Order.where(query.where_values.inject(:or))#=> Order Load (0.7ms) SELECT “orders”.* FROM “orders” WHERE (“orders”.”uuid” IN (‘5459eed8350e1b472bfee48375034103’, ‘21313213jkads’, ’43ujrefdk2384us’) OR “orders”.”id” IN (2, 3, 4)) Visto que o …
Continuar lendoEu estava olhando meu código Rails 3.2.13 para reduzir as consultas de banco de dados quando encontrei algo muito estranho. # user.rbclass User < ActiveRecord::Base has_many :attendances has_many :events, :through …
Continuar lendoActiveRecord, por padrão, armazena em cache as consultas para desempenho. Você pode ver algo como os seguintes registros: User Load (84.6ms) SELECT “users”.* FROM “users” WHERE “users”.”state” = ‘active’ AND …
Continuar lendoO Rails 3.2.6 fez com que algumas pessoas experimentassem regressões em seus aplicativos. Geralmente é porque eles estavam usando mal as condições aninhadas, antes. É verdade que joins / includes …
Continuar lendoEu vim com isso há um tempo em resposta a uma pergunta feita no Twitter. Acabei de encontrá-lo depois de ser questionado de novo, mas nunca tive um uso para …
Continuar lendoRecentemente, eu li o artigo muito bom de Justin Weiss sobre Como pré-carregar escopos Rails . A essência é esta – se você tiver: class Product < ActiveRecord::Base has_many :ratingsend …
Continuar lendoNão existe uma maneira fácil de executar um procedimento armazenado. Para isso fiz um pequeno serviço em cima do ActiveRecord que retorna OpenStruct class StoredProcedureService def self.instance @instance ||= StoredProcedureService.new …
Continuar lendo