Skip to content

ActiveRecord::JDBCError: Table 'xxxxxx' doesn't exist: SHOW FIELDS FROM  #1

Description

@ffabreti

Using tableless to create a model that searchs and union other models.

My tableless model works, but it keeps giving this message:
ActiveRecord::JDBCError: Table 'xxxxxx' doesn't exist: SHOW FIELDS FROM
I'm clueless!

My setup:
Gemfile:

gem 'rails', '3.2.8'
gem 'activerecord-jdbcmysql-adapter'
gem 'jruby-openssl'
group :assets do
gem 'sass-rails', '> 3.2.3'
gem 'coffee-rails', '
> 3.2.1'
gem 'uglifier', '>= 1.0.3'
end
gem 'jquery-rails'
gem 'i18n', '>= 0.6.1'
gem 'brdinheiro', '>=3.3.0'
gem 'brcpfcnpj', '>=3.3.0'
gem 'composite_primary_keys'
gem 'trinidad'
gem 'authlogic'
gem 'adauth'
gem 'delayed_job_active_record'
gem 'will_paginate'
gem "activerecord-tableless", "~> 1.0.1"

Model


class Vinc_mov_mix < ActiveRecord::Base
has_no_table
column :estab_id, :integer
column :vinc_id, :integer
column :caged_id, :integer
column :nome, :varchar
column :pis, :varchar

has_one :vinculo, :primary_key => :vinc_id, :foreign_key => :CN_NUMERO_SEQ
has_one :estab, :primary_key => :estab_id, :foreign_key => :CN_NUMERO_SEQ
has_one :caged_trab,:primary_key => :caged_id, :foreign_key => :id:
VINC_TABLE = '' + Vinculo.table_name + ''
CAGED_TABLE = '' + CagedTrab.table_name + ''
ESTAB_TABLE = '' + Estab.table_name + ''
PAGE_SIZE = 50

def self.search(estabs_ids, criterios={}, page=0) #page=offset

 estabs_ids = estabs_ids.to_a
 page -= 1; page = 0 if page < 0  

 clauses = where_clauses(criterios)

 if estabs_ids.present?
    clauses[:vincs_clauses]  = ["#{ESTAB_TABLE}.cn_numero_seq IN (#{estabs_ids.join(',')})"] + clauses[:vincs_clauses]
    clauses[:cageds_clauses] = ["#{ESTAB_TABLE}.cn_numero_seq IN (#{estabs_ids.join(',')})"] + clauses[:cageds_clauses]
 end

 self.find_by_sql(
     "SELECT #{ESTAB_TABLE}.cn_numero_seq as estab_id, #{VINC_TABLE}.cn_numero_seq as vinc_id,  null as caged_id, #{VINC_TABLE}.no_partic_rais as nome, #{VINC_TABLE}.co_pis as pis
     from #{ESTAB_TABLE}
     join #{VINC_TABLE}  on  #{ESTAB_TABLE}.co_cnpj_cei = #{VINC_TABLE}.co_cnpj_cei
     where #{clauses[:vincs_clauses].join(' AND ')}
     UNION ALL
     SELECT #{ESTAB_TABLE}.cn_numero_seq as estab_id, null as vinc_id, #{CAGED_TABLE}.id as caged_id,  #{CAGED_TABLE}.nomeTrab as nome, #{CAGED_TABLE}.pis as pis
     from #{ESTAB_TABLE}
     join #{CAGED_TABLE}  ON #{ESTAB_TABLE}.co_cnpj_cei = #{CAGED_TABLE}.identificadorEstab
     where #{clauses[:cageds_clauses].join(' AND ')}
     order by nome
     limit #{page * PAGE_SIZE}, #{PAGE_SIZE}"    #limit <offset> <count>
 )

end

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions