2

私はRubyが初めてなので、ガイド(http://guides.rubyonrails.org/getting_started.html)に従っていると、次のようなエラーが発生しました:

2012-06-07 17:22:36 +0900 で 127.0.0.1 の GET "/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) レンダリング /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 < 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 } ^):
何が問題なのですか?

4

2 に答える 2

4

あなたのコードは問題ありません。エディターが非標準のタブをどこかに挿入していると思います。これをモデル ファイルの先頭に配置します。

# encoding: utf-8

これは、ASCII 以外の文字列やリテラルを UTF-8 として解釈するように Ruby に指示する魔法のコメントです。

于 2012-06-07T08:39:49.633 に答える
4

コードに非改行スペースがあります:

validates :name,  :presence => true
                ^
               here
于 2012-06-07T09:12:24.477 に答える