2016-11-17 7 views
1

を期待して、この私のRubyコード(私はRailsのガイドにHARTLのRubyでに沿って次のです)これはUser_test.rbは私が間違って何をやっている - 構文エラーを予期しない「 n」は、=>

test "email validation should accept valid addresses" do 
    valid_addresses = %w[[email protected] [email protected] [email protected] 
         [email protected] [email protected]] 
    valid_addresses.each do |valid_address| 
    @user.email = valid_address 
    assert @user.valid?, "#{valid_address.inspect} should be valid" 
    end 
end 

test "email validation should reject invalid addresses" do 
    invalid_addresses = %w[[email protected],com user_at_foo.org [email protected] 
         [email protected] [email protected]+baz.com] 
    invalid_addresses.each do |invalid_address| 
    @user.email = invalid_address 
    assert_not @user.valid?, "#{invalid_address.inspect} should be invalid" 
    end 
end 

ですエラーは次のようなもので、私はそれを修正する方法を見つけることができません - 経験豊富な人は私が間違っていることを知っていますか?ここで

1) Error: 
UserTest#test_email_validation_should_reject_invalid_addresses: 
SyntaxError: /home/ubuntu/workspace/app/models/user.rb:4: syntax error,  unexpected '\n', expecting => 

あなたは,を削除する必要がUser.rbコード

class User < ActiveRecord::Base 
    has_many :microposts 

    VALID_EMAIL_REGEX = /\A[\w+\-.][email protected][a-z\d\-.]+\.[a-z]+\z/i 

    validates :name, presence: true, length: { maximum: 50}, 
    validates :email, presence: true, length: { maximum: 255}, 
    format: { with: VALID_EMAIL_REGEX }, uniqueness: true, case_sensitive: false    
end 
+2

あなたのテストコードを貼り付けましたが、構文エラーがあなたのユーザモデルにあります。 –

+2

(1)あなたのコードをどのように書式設定するかに注意してください、あなたの奇妙な字下げ(およびその欠如)読むのが難しい。 (2) 'User'クラスの3行目にカンマがあります。 –

答えて

1
validates :name, presence: true, length: { maximum: 50}, 

で、Rubyはあなたがそうでなければ、あなたのハッシュの定義を継続していると考えています。

unexpected '\n', expecting => は基本的にRubyが新しい行を期待していなかったが、キーとハッシュの定義は=>と値が続くことを意味します。

PS:もう1つの理由は、私はRuby Hash表記が嫌いです。コードには=>が見つかりません。エラーメッセージを理解するのが難しくなります。

関連する問題