1

私はそのような検証構造を持っています:

validates :upload_file_name,  :presence   => true,
                              :format     =>{:with => %r{\.(jpg)$}i,:message =>"should have an extension .jpg"}

validates_uniqueness_of :upload_file_name, :message => "is already in the database"

そして、Rails Consoleと入力すると、次の答えが得られます

 > s.errors.full_messages

 => ["Upload file name is already in the database"] 

「ファイル名をアップロード」なしで「データベースにすでに存在します」というメッセージのみが必要です。どうすればよいですか?この問題のこの2番目の解決策は、エラーが発生したため役に立ちませんでした。

en:
  activerecord:
    errors:
        full_messages:
            format:"%{attribute} %{message}"


1.9.3-p286 :002 > s.save()
   (0.2ms)  begin transaction
  Upload Exists (0.3ms)  SELECT 1 AS one FROM "uploads" WHERE "uploads"."upload_file_name" = 'Katja.jpg' LIMIT 1
   (0.3ms)  rollback transaction
Psych::SyntaxError: (/home/katja/Desktop/tors-jquery-fileupload-rails-paperclip-example-b0b9934/config/locales/en.yml): found character that cannot start any token while scanning for the next token at line 6 column 1
    from /home/katja/.rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/psych.rb:203:in `parse'
    from /home/katja/.rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/psych.rb:203:in `parse_stream'
    from /home/katja/.rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/psych.rb:151:in `parse'
    from /home/katja/.rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/psych.rb:127:in `load'
    from /home/katja/.rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/psych.rb:297:in `block in load_file'
    from /home/katja/.rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/psych.rb:297:in `open'
    from /home/katja/.rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/psych.rb:297:in `load_file'
    from /home/katja/.rvm/gems/ruby-1.9.3-p286/gems/i18n-0.6.0/lib/i18n/backend/base.rb:171:in `load_yml'
    from /home/katja/.rvm/gems/ruby-1.9.3-p286/gems/i18n-0.6.0/lib/i18n/backend/base.rb:157:in `load_file'
    from /home/katja/.rvm/gems/ruby-1.9.3-p286/gems/i18n-0.6.0/lib/i18n/backend/base.rb:15:in `block in load_translations'
    from /home/katja/.rvm/gems/ruby-1.9.3-p286/gems/i18n-0.6.0/lib/i18n/backend/base.rb:15:in `each'
    from /home/katja/.rvm/gems/ruby-1.9.3-p286/gems/i18n-0.6.0/lib/i18n/backend/base.rb:15:in `load_translations'
    from /home/katja/.rvm/gems/ruby-1.9.3-p286/gems/i18n-0.6.0/lib/i18n/backend/simple.rb:57:in `init_translations'
    from /home/katja/.rvm/gems/ruby-1.9.3-p286/gems/i18n-0.6.0/lib/i18n/backend/simple.rb:71:in `lookup'
    from /home/katja/.rvm/gems/ruby-1.9.3-p286/gems/i18n-0.6.0/lib/i18n/backend/base.rb:26:in `translate'
    from /home/katja/.rvm/gems/ruby-1.9.3-p286/gems/i18n-0.6.0/lib/i18n.rb:156:in `block in translate'
... 25 levels...
    from /home/katja/.rvm/gems/ruby-1.9.3-p286/gems/activerecord-3.2.6/lib/active_record/validations.rb:50:in `save'
    from /home/katja/.rvm/gems/ruby-1.9.3-p286/gems/activerecord-3.2.6/lib/active_record/attribute_methods/dirty.rb:22:in `save'
    from /home/katja/.rvm/gems/ruby-1.9.3-p286/gems/activerecord-3.2.6/lib/active_record/transactions.rb:241:in `block (2 levels) in save'
    from /home/katja/.rvm/gems/ruby-1.9.3-p286/gems/activerecord-3.2.6/lib/active_record/transactions.rb:295:in `block in with_transaction_returning_status'
    from /home/katja/.rvm/gems/ruby-1.9.3-p286/gems/activerecord-3.2.6/lib/active_record/connection_adapters/abstract/database_statements.rb:192:in `transaction'
    from /home/katja/.rvm/gems/ruby-1.9.3-p286/gems/activerecord-3.2.6/lib/active_record/transactions.rb:208:in `transaction'
    from /home/katja/.rvm/gems/ruby-1.9.3-p286/gems/activerecord-3.2.6/lib/active_record/transactions.rb:293:in `with_transaction_returning_status'
    from /home/katja/.rvm/gems/ruby-1.9.3-p286/gems/activerecord-3.2.6/lib/active_record/transactions.rb:241:in `block in save'
    from /home/katja/.rvm/gems/ruby-1.9.3-p286/gems/activerecord-3.2.6/lib/active_record/transactions.rb:252:in `rollback_active_record_state!'
    from /home/katja/.rvm/gems/ruby-1.9.3-p286/gems/activerecord-3.2.6/lib/active_record/transactions.rb:240:in `save'
    from (irb):2
    from /home/katja/.rvm/gems/ruby-1.9.3-p286/gems/railties-3.2.6/lib/rails/commands/console.rb:47:in `start'
    from /home/katja/.rvm/gems/ruby-1.9.3-p286/gems/railties-3.2.6/lib/rails/commands/console.rb:8:in `start'
    from /home/katja/.rvm/gems/ruby-1.9.3-p286/gems/railties-3.2.6/lib/rails/commands.rb:41:in `<top (required)>'
    from script/rails:6:in `require'

よろしくお願いします。

4

2 に答える 2

1

解決:

s.errors.message[:upload_file_name]
于 2012-11-10T21:03:57.773 に答える