我有一组与global_identificiation表有关系的位置,该表具有id,arc_id(object_id)和arc_type(object_type)(即复合外键)。我如何设置关联,以便在每次查找位置时急切地加载此全局信息?这样:
@l=Location.find(23)
@l['id']=23
@l['name']='some place'
@l['global_info']['id']=145
@l['global_info']['arc_id']=23
@l['global_info']['arc_type']='Location'
现在,为了保存,我只是做一个after_save回调,它是如何进入数据库但没有任何其他关联。
thx任何帮助
编辑:
也许这可以作为需要它的类的after_find来完成?
答案 0 :(得分:0)
使用after_find,或者只是在模型中创建一个方法来调用,然后只需将数据作为参数传入。
或者更好地制作一个所有基于位置的类都可以包含的模块,然后这个模块可以定义各种基于位置的方法。
module Locations
def find_with_data(id)
x = Location.find(id)
x['id']=id
x['name']='some place' #you could pass this in params
x
end
end
class Location < ActiveRecord::Base
include Locations
end
然后致电
new_loc = Location.new
new_loc.find_with_data(35)