2016-02-12 91 views
1

当我创建用户帐户时,出现此警告。 这条消息是什么意思?Ruby on Rails教程第6.3.4章

SyntaxError: /Users/KOSUKE/workspace/score_share/app/models/user.rb:6: syntax error, unexpected ':', expecting keyword_end 
    format: { with: VALID_EMAIL_REGEX } 
     ^
/Users/KOSUKE/workspace/score_share/app/models/user.rb:7: syntax error, unexpected ':', expecting keyword_end 
    uniqueness: { case_sensitive: false } 
      ^
    from /Users/KOSUKE/.rvm/gems/ruby-2.2.1/gems/activesupport-4.2.2/lib/active_support/dependencies.rb:457:in `load' 
    from /Users/KOSUKE/.rvm/gems/ruby-2.2.1/gems/activesupport-4.2.2/lib/active_support/dependencies.rb:457:in `block in load_file' 
    from /Users/KOSUKE/.rvm/gems/ruby-2.2.1/gems/activesupport-4.2.2/lib/active_support/dependencies.rb:647:in `new_constants_in' 
    from /Users/KOSUKE/.rvm/gems/ruby-2.2.1/gems/activesupport-4.2.2/lib/active_support/dependencies.rb:456:in `load_file' 
    from /Users/KOSUKE/.rvm/gems/ruby-2.2.1/gems/activesupport-4.2.2/lib/active_support/dependencies.rb:354:in `require_or_load' 
    from /Users/KOSUKE/.rvm/gems/ruby-2.2.1/gems/activesupport-4.2.2/lib/active_support/dependencies.rb:494:in `load_missing_constant' 
    from /Users/KOSUKE/.rvm/gems/ruby-2.2.1/gems/activesupport-4.2.2/lib/active_support/dependencies.rb:184:in `const_missing' 
    from (irb):1 
    from /Users/KOSUKE/.rvm/gems/ruby-2.2.1/gems/railties-4.2.2/lib/rails/commands/console.rb:110:in `start' 
    from /Users/KOSUKE/.rvm/gems/ruby-2.2.1/gems/railties-4.2.2/lib/rails/commands/console.rb:9:in `start' 
    from /Users/KOSUKE/.rvm/gems/ruby-2.2.1/gems/railties-4.2.2/lib/rails/commands/commands_tasks.rb:68:in `console' 
    from /Users/KOSUKE/.rvm/gems/ruby-2.2.1/gems/railties-4.2.2/lib/rails/commands/commands_tasks.rb:39:in `run_command!' 
    from /Users/KOSUKE/.rvm/gems/ruby-2.2.1/gems/railties-4.2.2/lib/rails/commands.rb:17:in `<top (required)>' 
    from /Users/KOSUKE/.rvm/gems/ruby-2.2.1/gems/activesupport-4.2.2/lib/active_support/dependencies.rb:274:in `require' 
    from /Users/KOSUKE/.rvm/gems/ruby-2.2.1/gems/activesupport-4.2.2/lib/active_support/dependencies.rb:274:in `block in require' 
    from /Users/KOSUKE/.rvm/gems/ruby-2.2.1/gems/activesupport-4.2.2/lib/active_support/dependencies.rb:240:in `load_dependency' 
    from /Users/KOSUKE/.rvm/gems/ruby-2.2.1/gems/activesupport-4.2.2/lib/active_support/dependencies.rb:274:in `require' 
    from /Users/KOSUKE/workspace/score_share/bin/rails:9:in `<top (required)>' 
    from /Users/KOSUKE/.rvm/gems/ruby-2.2.1/gems/activesupport-4.2.2/lib/active_support/dependencies.rb:268:in `load' 
    from /Users/KOSUKE/.rvm/gems/ruby-2.2.1/gems/activesupport-4.2.2/lib/active_support/dependencies.rb:268:in `block in load' 
    from /Users/KOSUKE/.rvm/gems/ruby-2.2.1/gems/activesupport-4.2.2/lib/active_support/dependencies.rb:240:in `load_dependency' 
    from /Users/KOSUKE/.rvm/gems/ruby-2.2.1/gems/activesupport-4.2.2/lib/active_support/dependencies.rb:268:in `load' 
    from /Users/KOSUKE/.rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require' 
    from /Users/KOSUKE/.rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require' 
    from -e:1:in `<main>'2.2.1 :002 > 
+1

你可以在这里发布完整的'user.rb'文件吗? –

+0

可能的错误在于,您在模型中的'validates'指令中省略了''';你需要'验证:参数,唯一性:{x:y},presence:true'(注意逗号) –

回答

0

确保您user.rb文件看起来正是这样的:

class User < ActiveRecord::Base 
    before_save { self.email = email.downcase } 
    validates :name, presence: true, length: { maximum: 50 } 
    VALID_EMAIL_REGEX = /\A[\w+\-.][email protected][a-z\d\-.]+\.[a-z]+\z/i 
    validates :email, presence: true, length: { maximum: 255 }, 
        format: { with: VALID_EMAIL_REGEX }, 
        uniqueness: { case_sensitive: false } 
    has_secure_password 
    validates :password, presence: true, length: { minimum: 6 } 
end 
0

错误消息告诉你,你user.rb有一个语法错误:

SyntaxError: /app/models/user.rb:6: syntax error, unexpected ':', expecting keyword_end 
format: { with: VALID_EMAIL_REGEX } 
    ^
/app/models/user.rb:7: syntax error, unexpected ':', expecting keyword_end 
uniqueness: { case_sensitive: false } 

您可能错过了,或关闭}

重新访问您的user.rb(特别是第5-7行),并仔细检查它是否与example in the book完全一样。

相关问题