Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Authlogic:如果用户登录,则跳过模型验证_Ruby On Rails_Validation_Authlogic - Fatal编程技术网

Ruby on rails Authlogic:如果用户登录,则跳过模型验证

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

我用的是Authlogic。我有一个
条目
模型,如果请求是由登录用户发出的,我想跳过一个验证方法(匿名用户也可以创建条目)。我假设
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?

此型号内没有登录功能。