我遇到了一个大问题,希望得到您的帮助,可以选择禁用具有多个依赖关系的用户帐户。
我相信它没有魔力,但让我们看看可以做些什么:
我有一个名为User::Account
的模型,其中包含所有依赖项(has_manies,has_ones ...),但这些依赖项在整个系统中使用,一切都适用于这些记录的存在与否。当这些依赖项处于活动或非活动状态时,无需定义任何内容。
但是我需要在模型User::Account
被定义为非活动时(例如通过DB中的列),所有这些依赖项也被禁用,就好像它们不存在一样,所以我没有改变系统的整个操作。或者是一种不太痛苦的方法来实现它。
建议?
由于
答案 0 :(得分:2)
如果不了解更多细节,很难给出确切的建议,
但我建议你可能正在寻找before_filter
。
这种东西。
class ApplicationController
private
def user_must_be_active!
if !@user.active?
flash[:error] = "User Account is not active"
redirect_to user_profile_path
end
end
end
因此,在用户必须处于活动状态的任何控制器中,我们都可以说
class SomeController < ApplicationController
before_filter :user_must_be_active!
end
或许我们只关心一些行动
class SomeOtherController < ApplicationController
before_filter :user_must_be_active!, :only => :some_action
end