Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.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 如何将设计中的可确认项改为可选项?_Ruby On Rails_Ruby On Rails 3_Devise Confirmable - Fatal编程技术网

Ruby on rails 如何将设计中的可确认项改为可选项?

Ruby on rails 如何将设计中的可确认项改为可选项?,ruby-on-rails,ruby-on-rails-3,devise-confirmable,Ruby On Rails,Ruby On Rails 3,Devise Confirmable,我有Desive for authentication和Desive for user model中的confirmatible,但我希望根据我发送的数据,这是可选的。也就是说,在用户模型中有一个类型字段,如果我为类型发送值1,则应存在可确认字段,如果值为2,则不应存在可确认字段,并且帐户应自动激活。我该怎么做?请帮帮我。提前感谢您可以在您的用户模型中制作类似的内容 before_save :confirm_user, on: :create def confirm_user self.c

我有Desive for authentication和Desive for user model中的
confirmatible
,但我希望根据我发送的数据,这是可选的。也就是说,在用户模型中有一个
类型字段
,如果我为类型发送
值1
,则应存在可确认字段,如果
值为2
,则不应存在可确认字段,并且帐户应自动激活。我该怎么做?请帮帮我。提前感谢

您可以在您的用户模型中制作类似的内容

before_save :confirm_user, on: :create

def confirm_user
  self.confirm! if field.eql?("value_1")
end

诀窍是你检查你的价值,如果你想创建一个用户而不需要确认,那么你只需用designe
confirm手动确认即可方法。

我想您可以使用跳过确认!方法在这里。所以它不会为用户发送确认邮件,而是会被确认

before_save :require_confirmation, :on => :create

def require_confirmation
   self.skip_confirmation! if field == "value_2"
end

您只需在config/initializers/designe.rb文件中设置
config.allow\u unconfirmed\u access\u for=nil


感谢您的关注–

谢谢。你能给我详细解释一下吗。我的用户模型中有“设计:可确认”。此方法如何限制可确认
确认方法通过将
字段中的
已确认\u设置为实际时间来确认用户。如果用户已确认,请在电子邮件字段中添加一个错误。我在保存之前使用过类似的方法:跳过确认!,:on=>:创建def skip_确认!self.confirm_at=Time.now如果type==“value 2”结束,则不会向用户发送邮件,如果type==“value 2”,但如果value为1,则会将错误显示为#的未定义方法“confirmation_url”。我能做什么?如果我发送值2,它将跳过确认并让用户登录,但如果值为1,它将错误显示为#的未定义方法“confirmation_url”,并且用户未被创建。如果value=1,它应该发送电子邮件,我该怎么办。。这似乎是设计范围内的视图相关错误。只需做一件事,备份您的项目并尝试此步骤-1:只需在“config/initializers/designe.rb”中设置“config.scoped_views=true”。步骤2:然后使用“rails生成设备:视图用户”生成范围视图。非常感谢。它现在可以工作了,但是你能告诉我为什么你要做这些改变吗?我对Desive gem知道的不多。但我认为designe默认范围视图存在一些designe路由问题。我几乎有同样的问题。我尝试了这些步骤,它解决了我的问题。你可以在网上找到更多信息