我在我的应用程序中使用了 freindly_id。我在我的应用程序中设置了一些固定装置。我想对它们进行集成测试。在测试期间,我需要friendly_id,但从夹具创建的数据库记录在 Slug 表中没有相应的 slug。
不是从夹具数据自动创建的 slug 吗?如果没有,那么有什么办法可以解决?
我在我的应用程序中使用了 freindly_id。我在我的应用程序中设置了一些固定装置。我想对它们进行集成测试。在测试期间,我需要friendly_id,但从夹具创建的数据库记录在 Slug 表中没有相应的 slug。
不是从夹具数据自动创建的 slug 吗?如果没有,那么有什么办法可以解决?
一种解决方案是在测试环境中运行生成 slug 的 rake 任务。
在 Windows 上
>set RAILS_ENV=test
>rake friendly_id:redo_slugs MODEL=xxx
或 Unix/Linux
>export RAILS_ENV=test
>rake friendly_id:redo_slugs MODEL=xxx
更新 rake 任务已被删除,请参阅对此答案的评论或friendly_id README。
最简单的方法是将slug
s 添加到夹具数据中:
# test/fixtures/things.yml
apple:
title: Apple
restricted: hellyes
slug: apple
# app/model/thing.rb
class Thing << ApplicationRecord
extend FriendlyId
friendly_id :name, use: :slugged
end