Ruby on rails Authlogic:如果用户登录,则跳过模型验证
我用的是Authlogic。我有一个Ruby on rails Authlogic:如果用户登录,则跳过模型验证,ruby-on-rails,validation,authlogic,Ruby On Rails,Validation,Authlogic,我用的是Authlogic。我有一个条目模型,如果请求是由登录用户发出的,我想跳过一个验证方法(匿名用户也可以创建条目)。我假设UserSession.find在Entry模型中无法像从控制器中一样使用。处理这种情况的最佳方法是什么?我是否需要编写某种自定义保存方法,并从EntriesController以编程方式调用它?或者有没有一种方法可以从模型内部检查登录状态?我猜我无论如何都不想这样做,因为模型应该负责对象状态而不是应用程序状态。在条目上创建一个名为登录的虚拟属性 attr_access
条目
模型,如果请求是由登录用户发出的,我想跳过一个验证方法(匿名用户也可以创建条目)。我假设UserSession.find
在Entry
模型中无法像从控制器中一样使用。处理这种情况的最佳方法是什么?我是否需要编写某种自定义保存方法,并从EntriesController
以编程方式调用它?或者有没有一种方法可以从模型内部检查登录状态?我猜我无论如何都不想这样做,因为模型应该负责对象状态而不是应用程序状态。在条目上创建一个名为登录的虚拟属性
attr_accessor :logged_in
在控制器中,如果用户已登录,则将entry.logged_In
设置为true,否则设置为false。然后可以在验证方法中使用该属性
validate_on_create :my_check
def my_check
unless self.logged_in?
# add errors
end
end
你可以用
valide_on_create :my_check, :unless => logged_in?
此型号内没有登录功能。