【问题标题】:I got the error syntax error, unexpected $end, expecting keyword_end [closed]我收到错误语法错误,意外 $end,期望关键字_end [关闭]
【发布时间】:2012-06-07 08:31:14
【问题描述】:

我是第一个使用 ruby​​ 的,所以当我遵循指南时(http://guides.rubyonrails.org/getting_started.html)我得到了如下错误:

于 2012-06-07 17:22:36 +0900 开始为 127.0.0.1 获取“/questions”

SyntaxError (/Users/sookcha/Desktop/Dev/CSap/app/models/question.rb:3: 无效的多字节字符 (US-ASCII) /Users/sookcha/Desktop/Dev/CSap/app/models/question.rb:3: 语法错误,意外 $end,期待 keyword_end 验证 :name,  :presence => true ^): app/controllers/questions_controller.rb:2:in `'

渲染 /Users/sookcha/.rvm/gems/ruby-1.9.3-p125/gems/actionpack-3.2.5/lib/action_dispatch/middleware/templates/rescues/_trace.erb (3.1ms) 渲染 /Users/sookcha/.rvm/gems/ruby-1.9.3-p125/gems/actionpack-3.2.5/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (1.1ms) 在救援/布局(10.7 毫秒)内渲染 /Users/sookcha/.rvm/gems/ruby-1.9.3-p125/gems/actionpack-3.2.5/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb

当我刷新页面时,出现以下不同的错误:

Started GET "/questions" for 127.0.0.1 at 2012-06-07 17:22:40 +0900

NoMethodError (undefined method `key?' for nil:NilClass):

我的代码是

class Question < ActiveRecord::Base
attr_accessible :content, :name, :title
validates :name,  :presence => true
validates :title, :presence => true,
                  :length => { :minimum => 5 }

end

我的代码有什么问题?

编辑

当我插入 # encoding: utf-8, 在我的代码中, 我得到了一个不同的错误,例如: /Users/sookcha/Desktop/Dev/CSap/app/models/question.rb:5: syntax error, unexpected tSYMBEG, expecting keyword_do or '{' or '(' validates :name, :presence => true ^ /Users/sookcha/Desktop/Dev/CSap/app/models/question.rb:7: syntax error, unexpected tASSOC, expecting keyword_end :length => { :minimum => 5 } ^):
怎么了?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 validation


    【解决方案1】:

    您的代码中有一个non-breaking space

    validates :name,  :presence => true
                    ^
                   here
    

    【讨论】:

      【解决方案2】:

      您的代码很好,我敢打赌您的编辑器在某处插入了一个非标准选项卡。将其放在模型文件的顶部:

      # encoding: utf-8
      

      这是一个神奇的注释,指示 ruby​​ 将任何非 ascii 字符串或文字解释为 UTF-8。

      【讨论】:

      • 我得到一个不同的错误 /Users/sookcha/Desktop/Dev/CSap/app/models/question.rb:5: 语法错误,意外的 tSYMBEG,期待关键字_do 或 '{' 或 '('验证 :name, :presence => true ^ /Users/sookcha/Desktop/Dev/CSap/app/models/question.rb:7: 语法错误,意外 tASSOC,期望关键字_end :length => { :minimum => 5 } ^):
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-23
      • 2015-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-15
      • 1970-01-01
      相关资源
      最近更新 更多