Pergunta

Estou recebendo um erro ao executar db:setup Para o meu projeto HOBO com um banco de dados limpo. Eu tenho dois modelos, A e B, onde B estende por uma infância de mesa única. Criar tudo funciona. Mas se eu começar com um novo banco de dados, Rake falhará com um erro:

$ rake db:setup
...
rake aborted!
Table as does not exist

Aqui estão as etapas pelas quais passei para reproduzir isso. Primeiro, crie o aplicativo Hobo:

$ hobo testproject

Crie o primeiro modelo, A:

$ ruby script/generate hobo_model_resource a name:string type:string

Configurar database.yml, gerar e executar a migração:

$ ruby script/generate hobo_migration

Crie o segundo modelo, B:

$ruby script/generate hobo_model_resource b

Editar o B modelo para estender A:

class B < A

  # --- Permissions --- #
  def create_permitted?
    acting_user.administrator?
  end

  def update_permitted?
    acting_user.administrator?
  end

  def destroy_permitted?
    acting_user.administrator?
  end

  def view_permitted?(field)
    true
  end
end

Gerar e executar a migração:

$ ruby script/generate hobo_migration

Pronto. Tudo funciona bem. Agora, se eu excluir todas as mesas e correr db:setup, Falha:

$ rake db:setup
...
rake aborted!
Table as does not exist

Seguindo as sugestões em Ruby on Rails Tabela única herança (STI) e problema de teste de unidade (com PostgreSQL), Eu tentei remover test/fixtures/as.yml e test/fixtures/bs.yml, mas isso não ajudou.

Hobo 0.9.103
Rails 2.3.5
Rake 0.8.7
Jruby 1.4.0rc1

Alguma sugestão?

Foi útil?

Solução

Parece que é um bug no hobo:

http://groups.google.com/group/hobousers/browse_thread/thread/2160e78762791946

De acordo com Matt Jones:

O rastreio tem o código de escopo automático tentando ver se herdado_without_ineritable_attributes é uma coluna, que atinge o
DB e morre.

Ele sugere acrescentar:

return unless table_exists? 

no início do column Método (linha 211 de hobofields/lib/hobo_fields/model_extensions.rb).

Outras dicas

Eu segui todos os seus passos e tudo funcionou bem. Você tentou rake db:schema:load?

hobo 0.9.104
rails 2.3.5
rake 0.8.6
ruby 1.8.6
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top