Rails自动创建1:1依赖项

时间:2015-06-18 20:07:08

标签: ruby-on-rails

我有一个使用Devise的Rails 4应用程序。

我试图单独使用User模型,以便我不与Devise交叉路径,因此我为用户将拥有的所有设置/视图创建了一个Profile模型。

个人资料

belongs_to :user

用户

has_one :profile

在创建新用户时,我在哪里放置应用程序需要知道的逻辑来创建配置文件,并在用户删除时删除它?

2 个答案:

答案 0 :(得分:2)

您可以使用Active Record Callbacks创建个人资料。并且您可以使用ViewGroup editTextsContainer = (ViewGroup)findViewViewById(R.id.editTextsContainer); editTextsContainer.addView(editText); 来确保在销毁用户时销毁配置文件。

dependent: :destroy

models/user.rb

答案 1 :(得分:1)

Rails关联有一个dependent option,它处理删除相关记录。

User < ActiveRecord::Base
  has_one :profile, dependant: :destroy
end
  • :destroy,当对象被销毁时,将在其上调用destroy 相关对象。
  • :delete,当物体被摧毁时,它的全部 相关对象将直接从数据库中删除而不用 调用他们的破坏方法。

可以使用ActiveRecord callbacks或在控制器中创建关联的Profile。我越来越厌倦回调,因为它很难控制它们实际运行的时间和地点。

对于Devise,你会override the Devise::RegistrationsController