43、再次执行 rails db:migrate 重新运行迁移后,需要做什么操作来确认相关内容是否恢复?
确认 db/schema.rb 的内容已恢复。
44、通过给 User.all 传递 length 方法来确认可以找到它的长度。Ruby 根据对象的行为而非其正式类类型来操作对象的能力被称为鸭子类型,基于“如果它看起来像鸭子,叫声也像鸭子,那它可能就是只鸭子”这句格言。
可在 Rails 控制台中输入 User.all.length 来确认能通过传递 length 方法找到 User.all 的长度。
45、使用赋值和调用 save 方法更新用户的姓名。
可通过如下代码实现:先对用户的 name 属性进行赋值,再调用 save 方法。示例代码如下:
user.name = "新姓名";
user.save();
这里的“新姓名”可替换为具体要更新的姓名。
46、使用 update_attributes 方法更新用户的电子邮件地址。
可以使用如下代码更新用户的电子邮件地址:
user.update_attributes(email: "dude@abides.org")
这里将用户的电子邮件地址更新为 dude@abides.org ,你可以根据实际需求修改电子邮件地址的值。
47、在控制台中,确认新用户当前是否有效。
可以通过在控制台调用布尔方法 valid? 来确认新用户是否有效,示例代码如下:
>> user.valid?
若返回 true ,则表明新用户有效。
48、确认创建的用户是否有效
可在控制台中使用相关代码确认该用户是否有效,也可运行模型测试( rails test:models ),若测试通过则说明用户有效。
49、确认 u.errors.messages 是一个错误信息的哈希表。你如何只访问电子邮件相关的错误信息?
若 u.errors.messages 是哈希表,可通过 u.errors.messages[:email] 访问电子邮件相关的错误信息。
50、创建一个姓名和电子邮件过长的新用户,并确认该用户无效。
在测试代码中,创建一个新用户,将姓名设置为 51 个字符的字符串,电子邮件设置为 256 个字符的字符串,然后使用 assert_not @user.valid? 来确认该用户无效。示例代码如下:
require 'test_helper'
class UserTest < ActiveSupport::TestCase
def setup
@user = User.new(name: "Example User", email: "user@example.com")
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
end
51、为电子邮件小写转换功能添加一个测试。此测试使用 reload 方法从数据库重新加载值,使用 assert_equal 方法测试相等性。为验证该测试的正确性,注释掉 before_save 行使测试失败;然后取消注释使测试通过。
首先,在 `test/models/user_test.rb` 文件中添加测试代码:
```ruby
require 'test_helper'
class UserTest < ActiveSupport::TestCase
def setup
@user = User.new(name: "Example User", email: "user@example.com")
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
test "email addresses should be saved as lowercase" do
mixed_case_email = "Foo@ExAMPle.CoM"
@user.email = mixed_case_email
@user.save
assert_equal mixed_case_email.downcase, @user.reload.email
end
end
接着,在 app/models/user.rb 文件中注释掉 before_save 行:
class User <

最低0.47元/天 解锁文章
24

被折叠的 条评论
为什么被折叠?



