Ruby on rails 与Rails约定相比,在单元测试映射到不同表的模型之前,是否需要进行任何设置?
我有一个模型车辆,它实际上映射到at_车辆表。因此,在运行我的车辆测试脚本时,我得到错误“'vehicles'关系不存在”。有没有黑客,可以让我运行我的测试与当前的数据库模式是什么?Ruby on rails 与Rails约定相比,在单元测试映射到不同表的模型之前,是否需要进行任何设置?,ruby-on-rails,unit-testing,Ruby On Rails,Unit Testing,我有一个模型车辆,它实际上映射到at_车辆表。因此,在运行我的车辆测试脚本时,我得到错误“'vehicles'关系不存在”。有没有黑客,可以让我运行我的测试与当前的数据库模式是什么? 谢谢 这不是黑客攻击,但您可以在模型中使用set\u table\u name(假设rails 2.3.x)。测试正在做正确的事情,告诉您活动记录关联设置不正确。您需要在模型中定义关系 class Vehicle < ActiveRecord::Base set_table_name "at_vehicl
谢谢 这不是黑客攻击,但您可以在模型中使用
set\u table\u name
(假设rails 2.3.x)。测试正在做正确的事情,告诉您活动记录关联设置不正确。您需要在模型中定义关系
class Vehicle < ActiveRecord::Base
set_table_name "at_vehicles"
end
class车辆
问题出在固定装置上。夹具文件“obus”正在尝试访问obus表。因此,如果您偏离惯例,使用与模型不同的表名,您还将更改夹具文件名我这样做了,但现在它表明关系obus不存在。我有另一个名为Obu的模型,它映射到at_vehicle_设备,我更新了Obu模型,将_table_名称设置为“at_vehicle_设备”。有线索吗?附言:我很无助,但由于我的应用程序与客户的db对话,我不得不偏离Rails惯例。我不确定你在评论中的问题的关系特征,你说Obu不存在,但你描述的是Obu模型?Rails为您提供了必要的工具,让您可以用约定管理糟糕的约定,这样您就可以开心了。Postgres将表描述为一种关系。它试图映射到“obus”表,其中实际应该映射到at_vehicle_设备。无论如何,谢谢杰德!实际上,是rails试图定义obus表,即“obu”的复数形式。set_table_名称也应该可以使用,但您可能还需要设置主键