Ruby on rails rails属于冲突?
很抱歉,如果以前有过类似的问题,我不知道用什么术语来搜索 我有一个“vehicle_workshop”模型,它存储车辆和车间数据,有一个名为“type”的列来区分这两个,“workshop_no”列用作名称 现在我有了另一个模型“车间分布”,它使用了车辆和车间,我能够创建如下关系Ruby on rails rails属于冲突?,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,很抱歉,如果以前有过类似的问题,我不知道用什么术语来搜索 我有一个“vehicle_workshop”模型,它存储车辆和车间数据,有一个名为“type”的列来区分这两个,“workshop_no”列用作名称 现在我有了另一个模型“车间分布”,它使用了车辆和车间,我能够创建如下关系 belongs_to :vehicle_workshop belongs_to :vehicle_workshop, :foreign_key => "vehicle_id" 这允许我保存数据,没有任何问题,两
belongs_to :vehicle_workshop
belongs_to :vehicle_workshop, :foreign_key => "vehicle_id"
这允许我保存数据,没有任何问题,两个外键字段分别是车间的“vehicle\u workshop\u id”和车辆的“vehicle\u id”
现在的问题是当我想要访问注册号时,即车辆和车间的“车间号”字段
我有两个属性存取器,“车辆号”、“车间号”
方法如下
def vehicle_no
self.vehicle_workshop ? self.vehicle_workshop.workshop_no : nil
end
def workshop_no
self.vehicle_workshop ? self.vehicle_workshop.workshop_no : nil
end
这两个函数返回相同的值,如何将适当的id值传递给这两个函数?说‘车辆识别号’和‘车辆车间识别号’
任何帮助都将不胜感激
class WorkshopDistribution
# You could change your references to these:
belongs_to :vehicle_workshop
belongs_to :vehicle, :foreign_key => "vehicle_id", :class_name => 'VehicleWorkshop'
# and then just change methods:
def vehicle_no
vehicle ? vehicle.workshop_no : nil
end
def workshop_no
vehicle_workshop ? vehicle_workshop.workshop_no : nil
end
end
但是如果您有可能更改数据库结构,我建议您在这种情况下使用STI(单表继承)。车辆和车间之间的唯一区别是类型,所有其他字段都是相同的。这并不能回答问题,但是你可以将你的方法重构为:
self.vehicle\u workshop.try(:workshop\u no)| nil
@mu太短了,不是我设计的,客户设计了表结构并给了代码。在rails中有没有这样做的方法?