我有一个公共汽车模型和一个事件模型。每辆公共汽车都要去参加一个活动:
class Bus < ActiveRecord::Base
belongs_to :event
belongs_to :origin
end
class Event < ActiveRecord::Base
has_many :buses
end
正如你所看到的,每辆公共汽车也有一个起源(它离开的地方)。一个发源地可以有许多公共汽车从它出发。起源在创建时(由[Geocoder gem][1])进行地理编码,因此它们具有与其相关联的纬度和经度。
class Origin < ActiveRec
假设我有一份虚构的租车申请。
我有用户,汽车和地址。
user (id, name, email)
has_many :addresses
has_many :cars
car (id, name)
belongs_to :user
address (id, name, user_id)
belongs_to :user
每个用户都有多个地址和汽车。地址是用户可以借出汽车的位置。
现在,对于这个模型,我想做以下工作(假设用户1有2个地址和3辆汽车):
Settings for User #1 :
(specify at which address each of your
通常,我希望在我的一个用户上运行一个查询,其中我希望以一对一的关系存储一行并与该用户相关联。因此,假设(这只是一个随意的例子),我有一个表,它跟踪用户的汽车,以及关于汽车的一些信息。每个用户可以拥有0辆或1辆汽车。如果用户没有汽车,则表中没有该用户的条目。
cars表(同样,只是一个例子):id,user_id,car_make,car_model
所以,当我更新这个表时,我总是会这样做(伪代码):
result = SELECT * FROM cars WHERE user_id=5
if (num_rows(result)>0){
UPDATE cars SET car_ma