我在做什么错误 - 语法错误意外“\ n”,期待=>
问题描述:
这是我的Ruby代码(我沿着哈特尔的Ruby on Rails的指导下),这是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
答
validates :name, presence: true, length: { maximum: 50},
您需要删除,
,林心如觉得你继续,否则你的哈希的定义。
unexpected '\n', expecting =>
基本上意味着,红宝石不期待一个新的线,但随后是=>
和的值的哈希的用钥匙的定义。
PS:另外一个原因是我不太喜欢缩写的Ruby Hash符号。在代码中找不到=>
,这使得难以理解错误消息。
你粘贴了你的测试代码,但它看起来像你的语法错误在你的用户模型 –
(1)请注意你如何格式化你的代码,你的奇怪的缩进(和缺乏)使你的代码非常难以阅读。 (2)你的'User'类的第三行有一个逗号尾随的逗号。 –