有下一个问题:
我有两个数据库:my
和not my
(称之为"hammas"
)。因此,在我的hammas
我有一个名为经理的表格,其中包含email
和org_unit_id
字段。在my
数据库中,我有一个名为email
和unit_id
的用户字段。
一切都很清楚?我很高兴。所以,接下来的举动。
我有这段代码:
user_emails = User.find(:all).collect {|r| r.email }
hammas_managers.each do |email, org_unit_id|
if !user_emails.include?(email)
User.create(:email => email, :user_group_id => organisational_unit_id)
end
end
因此,我会收到电子邮件和organisational_unit_id并粘贴到我的桌子上。
每个人的工作。 SUPERB!
但是我需要:如果在"hammas"
某个管理员删除(意外或特殊)行,那么我的数据库仍将保留此行(我必须手动删除它)。如何自动制作chek:
如果删除了行
blah blah blah code
User.destroy(:id => ... ) or how?
谢谢!
答案 0 :(得分:2)
将此添加给用户
has_one :hammas_manager, :foreign_key => :email, :local_key => :email, dependant => destroy
这是对hammas_manager
belongs_to :user, :foreign_key => :email, :local_key => :email, dependant => destroy
现在,您的应用程序在删除hammas_manager时会自动删除用户。
如果您可能想要“清理”以前孤立的用户(即没有h.m),您可以在控制台中运行它(已经定义了上述关系):
User.all.each{|u| u.destroy if u.hammas_manager.blank?}
这是未经测试的,因此不要在生产数据上运行它。