我必须设置关联模型(limesurvey)的表名,因为表名是动态的并且取决于模型(任务)的属性(survey_id)。
我当前的实现在任务初始化时设置表名:
class task < ActiveRecord::Base
after_initialize :setTablename
has_one :limesurvey
def setTablename
Limesurvey.table_name = "lime_survey_#{self.survey_id}"
end
end
这个实现是可行的,但它有一个缺点,即每个任务都会调用 setTablename 方法,尽管它不是必需的。
如何仅在加载关联石灰调查之前执行 setTablename?