Pergunta

Eu estou tentando sair Rails motores através da criação de um mecanismo de Classificados onde os usuários podem visualizar / post / resposta nos classificados.

A principal aplicação contém código para autenticação de usuários e perfis, enquanto há um motor que eu criei que irá lidar com a funcionalidade classificados.

Agora eu quero adicionar alguns dados de exemplo para o banco de dados para o motor de Classificados. Então, eu criei um arquivo de rake chamado 'sample_classifieds_data.rake' em 'vendor / plugins / Classificados / lib / tarefas' e eu adicionei os arquivos yml em 'vendor / plugins / Classificados / lib / tarefas / sample_classifieds_data'

O código do arquivo ancinho e um arquivo yml amostra pode ser encontrada aqui: http: //gist.github .com / 216776

Agora o problema é que quando eu executar a tarefa rake, nenhum erro está sendo jogado, mas os valores não estão sendo preenchidos no banco de dados.

Todas as idéias? BTW, é ambiente de desenvolvimento e banco de dados é o banco de dados de desenvolvimento.

Eu corri uma tarefa rake semelhante para preencher usuários de exemplo no banco de dados que trabalhou. a localização do arquivo de rake 'sample_data.rake' foi localizado em 'lib / tarefas'.

Foi útil?

Solução

Sua tarefa parece ser bom. Sobre a única coisa que faria com que sua tarefa de falhar silenciosamente é que o arquivo que você está passando para Fixture.new não aponta para um arquivo yml ou CSV.

Verifique modificando a instrução put para imprimir o caminho completo do arquivo importado, e comparar o que ele imprime contra a sua estrutura de diretório.

Por exemplo, as coisas vão falhar silenciosamente se seus arquivos do dispositivo elétrico começar com uma letra maiúscula? Categories.yml vez de categories.yml

Outras dicas

No Rails borda, você pode usar o recurso rake db:seed para adicionar datas à sua base. Veja a cometer .

O uso é bastante simples.

Crie um arquivo db/seeds.rb.
E colocar o código que você deseja semear seu banco de dados na mesma.

Por exemplo:

Category.create!(:name => 'My Category')
Country.create!(:name => 'Cassoulet Land')

E quando você quer para semear seu banco de dados, você poderia fazer uma rake db:seed

Se, por qualquer motivo, você não desejar borda uso (o que seria compreensível em um ambiente de produção), você pode usar o Semente Fu plugin, que muito faz o truque para você.

O db: tarefa de semente foi adicionado em trilhos 2.3.4. Portanto, não há necessidade de borda prazo.

http: //weblog.rubyonrails .org / 2009/9/4 / ruby-on-rails-2-3-4

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top