我有一个处理运动队的 Rails 应用程序。有一个模型,Club
包含所有球队,它们与Match
es 等有关。该应用程序以其中一个俱乐部为中心,并依赖于该记录的存在。我有一个定义主俱乐部的应用程序辅助方法,本质上是:
def main_club
@main_club ||= Club.find_by(abbrv: 'CLB')
end
然后在控制器逻辑(可以做某些main_club
你不能为其他人做的事情)和视图(显示有关即将到来的比赛的某些关键信息等)中引用它。
这让我感觉很乱。依赖“软”数据库记录的硬代码?但我确实需要俱乐部成为记录,以允许其所有关系。
我只是保持原样,但它弄乱了 RSpec。即使在 中运行Rails.application.load_seed
,config.before(:suite)
我也经常遇到规格失败,因为它无法调用.matches
,例如 on nil
。
这种事情有既定的做法吗?我该怎么办?
编辑:种子文件包括所有当前的俱乐部(包括主俱乐部),有可能在管理界面/控制器中添加更多。RSpec 问题可能来自 DatabaseCleaner 做错了什么,但是 a)我不确定那会是什么,b)我对依赖“软”数据库记录的硬代码的担忧仍然存在,无论 RSpec 是什么。