gpt4 book ai didi

ruby-on-rails - Michael Hartl 的教程第 6 章 : Failing Test due to Syntax_error on model

转载 作者:行者123 更新时间:2023-11-28 21:29:09 24 4
gpt4 key购买 nike

list 6.27 中的测试旨在 pass ,但是我不断收到 13 个错误,这些错误都对我引用了相同的语法错误:

Syntax Error:       SyntaxError: /home/action/workspace/app/app/models/user.rb:6: syntax error, unexpected ':', expecting keyword_end

这似乎是导致错误的模型,但我没有发现它有任何问题:

  1  class User < ActiveRecord::Base
2 validates :name, presence: true, length: { maximum: 50 }
3 VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
4 validates :email, presence: true, length: { maximum: 255 },
5 format: { with: VALID_EMAIL_REGEX }
6 uniqueness: {case_sensitive: false}
7 end

最初它说错误是第 6 行,意外的关键字“:”在唯一性和左括号之间,但经过一些修改之后,这似乎已经停止了。

关于本章的一些关于 SO 的问题似乎源于测试本身的缩进,因此为了完整起见,我将它们包括在这里:

require 'test_helper'

class UserTest < ActiveSupport::TestCase

def setup
@user = User.new(name: "Example User", email: "user@example.com")
end

test "should be valid" do
assert @user.valid?
end

test "name should be present" do
@user.name = " "
assert_not @user.valid?
end

test "name should not be too long" do
@user.name = "a" * 51
assert_not @user.valid?
end

test "email should not be too long" do
@user.email = "a" * 244 + "@example.com"
assert_not @user.valid?
end

test "email validation should accept valid addresses" do
valid_addresses = %w[user@example.com USER@foo.COM A_US-ER@foo.bar.org first.last@foo.jp alice+bob@baz.cn]
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[user@example,com user_at_foo.org user.name@example. foo@bar_baz.com foo@bar+baz.com]
invalid_addresses.each do |invalid_address|
@user.email = invalid_address
assert_not @user.valid?, "#{invalid_address.inspect} should be invalid"
end
end

test "email addresses should be unique" do
duplicate_user = @user.dup
duplicate_user.email = @user.email.upcase
@user.save
assert_not duplicate_user.valid?
end
end

最佳答案

第 5 行末尾缺少 ,

请参阅 Listing 6.24 处的代码

class User < ActiveRecord::Base
validates :name, presence: true, length: { maximum: 50 }
VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
validates :email, presence: true, length: { maximum: 255 },
format: { with: VALID_EMAIL_REGEX },
uniqueness: true
end

关于ruby-on-rails - Michael Hartl 的教程第 6 章 : Failing Test due to Syntax_error on model,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29540544/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com