我有一个使用Devise的Rails 4应用程序。
我试图单独使用User模型,以便我不与Devise交叉路径,因此我为用户将拥有的所有设置/视图创建了一个Profile模型。
个人资料
belongs_to :user
用户
has_one :profile
在创建新用户时,我在哪里放置应用程序需要知道的逻辑来创建配置文件,并在用户删除时删除它?
答案 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
。