Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 与Rails约定相比,在单元测试映射到不同表的模型之前,是否需要进行任何设置?_Ruby On Rails_Unit Testing - Fatal编程技术网

Ruby on rails 与Rails约定相比,在单元测试映射到不同表的模型之前,是否需要进行任何设置?

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

我有一个模型车辆,它实际上映射到at_车辆表。因此,在运行我的车辆测试脚本时,我得到错误“'vehicles'关系不存在”。有没有黑客,可以让我运行我的测试与当前的数据库模式是什么?
谢谢

这不是黑客攻击,但您可以在模型中使用
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_名称也应该可以使用,但您可能还需要
设置主键