2

Rails 3.1.3 アプリケーションで新しいデータベースを取得するために、古い開発データベースを削除しました。しかし、実行するbundle exec rake db:seed --traceと次のエラーが発生します。

rafael@WALL-A:~/workspace/media-choice$ bundle exec rake db:seed --trace
** Invoke db:seed (first_time)
** Invoke db:abort_if_pending_migrations (first_time)
** Invoke environment (first_time)
** Invoke disable_rails_admin_initializer (first_time)
** Execute disable_rails_admin_initializer
** Execute environment
[DEPRECATION WARNING] Nested I18n namespace lookup under "activerecord.models.delayed_upload_error" is no longer supported
** Execute db:abort_if_pending_migrations
** Execute db:seed
rake aborted!
stack level too deep
/home/rafael/.rvm/gems/ruby-1.9.3-p0@media-choice/gems/rake-0.9.2.2/lib/rake/task.rb:162
Tasks: TOP => db:seed
rafael@WALL-A:~/workspace/media-choice$

sass-3.1.5 の問題である可能性があり、3.1.4 にダウングレードすると修正される可能性があることをここで読みました。しかし、私にとってはうまくいきませんでした。また、私はここを読んで、rvm gemsetの問題である可能性があります。そのため、rvm をアンインストールし、すべてのルビーと宝石を再インストールしました。しかし、問題はまだここにあります。

また、シードファイルの間違いかもしれないと思いましたが、ここでは問題はありません。

# -*- encoding : utf-8 -*-

occupation = Occupation.create!(name: 'Estudante')

sponsor = Sponsor.create!(name: 'PROAC', logo: File.open('db/seeds/proac.jpg'))

contest = Contest.create!(name: 'Tema Livre', description: 'descrição', start_date: Date.today - 1.month, end_date: Date.today + 1.month,
                          call_text: 'call text', logo: File.open('db/seeds/freesubject.jpg'), enabled: true, show_in_upload: true )
contest.sponsors << sponsor
contest.content_types.create!(name: 'video')
contest.content_types.create!(name: 'audio')
contest.content_types.create!(name: 'wording')
contest.content_types.create!(name: 'photo')

user = User.new(first_name: 'José', last_name: 'da Silva', email: 'email@email.com', password: 'senhasenha',
                    country: 'Brasil', state: 'SP', city: 'São Paulo', gender: 'Masculino', birthdate: Date.today - 30.years,
                    commercialize_videos: true)
user.occupation = occupation
user.confirm!
user.save!

user2 = User.new(first_name: 'José', last_name: 'da Silva', email: 'email2@email.com', password: 'senhasenha',
                    country: 'Brasil', state: 'SP', city: 'São Paulo', gender: 'Masculino', birthdate: Date.today - 30.years,
                    commercialize_videos: true)
user2.occupation = occupation
user2.confirm!
user2.save!


user3 = User.new(first_name: 'José', last_name: 'da Silva', email: 'email3@email.com', password: 'senhasenha',
                    country: 'Brasil', state: 'SP', city: 'São Paulo', gender: 'Masculino', birthdate: Date.today - 30.years,
                    commercialize_videos: true)
user3.occupation = occupation
user3.confirm!
user3.save!

誰にもヒントはありますか?

ありがとうございました!

4

2 に答える 2

2

うまくいけば、これは誰かを助けるでしょう。

私の場合、追加した after_save メソッドが何度も呼び出されていたことが原因でした。それを after_create に変更しましたが、すべて問題ありません。

于 2013-12-20T13:11:26.150 に答える
1

これが古い投稿であることは承知していますが、非常に長い間同じエラーに対処していたので、あなたや将来の視聴者を助けることができると思います.

私にとって、問題はエスケープされていない文字でした。具体的には、シードしていた (約 100,000 の) いくつかのエントリに一重引用符がありました。これらを \' に置き換えると、問題はなくなりました。

貼り付けたコードに「e」がアクセントになっているのがわかります。間違ったエンコーディングが使用されている場合、これらが問題になる可能性があることはわかっています。

于 2013-02-19T18:34:44.743 に答える