我收到错误语法错误,意外$ end,期待keyword_end
我是第一个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_endvalidation: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)呈现/用户/ 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)呈现/Users/sookcha/.rvm/gems/ruby救援/布局中的-1.9.3-p125 / gems / actionpack-3.2.5 / lib / action_dispatch / middleware / templates / rescues / diagnostics.erb(10.7ms)
当我刷新页面时,我在下面得到了一个不同的错误:
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 true validates :title, :presence => true, :length => { :minimum => 5 } end
我的代码出了什么问题?
编辑
当我插入/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 } ^):
# 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 } ^):
怎么了?
您的代码中有一个不间断的空间 :
validates :name, :presence => true ^ here
你的代码很好,我打赌你的编辑器正在某处插入一个非标准的选项卡。 将其放在模型文件的顶部:
# encoding: utf-8
这是一个神奇的评论,指示ruby将任何非ascii字符串或文字解释为UTF-8。