Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.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 Rails/在模型(Rspec)中设计自定义注册验证工作,但不在视图(Cucumber)中_Ruby On Rails_Devise - Fatal编程技术网

Ruby on rails Rails/在模型(Rspec)中设计自定义注册验证工作,但不在视图(Cucumber)中

Ruby on rails Rails/在模型(Rspec)中设计自定义注册验证工作,但不在视图(Cucumber)中,ruby-on-rails,devise,Ruby On Rails,Devise,在这个网站()的其他地方也有人问过类似的问题,虽然这个解决方案对他们有效,但我无法让它对我起作用来拯救我的生命。我的型号代码: 类用户:创建 受保护的 def正确的安全代码 错误。如果安全代码!="1234" 结束 结束 我有RSpec和Cucumber的测试。RSpec测试工作得非常好,表明所有测试都是基于验证的。然而,Cucumber/view不可避免地会失败,在安全代码上调用验证错误。我的看法是: =simple_form_for(resource,:as=>resource_nam

在这个网站()的其他地方也有人问过类似的问题,虽然这个解决方案对他们有效,但我无法让它对我起作用来拯救我的生命。我的型号代码:


类用户
可访问属性:电子邮件、姓名、密码、密码确认
属性访问器:安全代码
验证:正确的\u安全\u代码,:on=>:创建
受保护的
def正确的安全代码 错误。如果安全代码!="1234" 结束 结束

我有RSpec和Cucumber的测试。RSpec测试工作得非常好,表明所有测试都是基于验证的。然而,Cucumber/view不可避免地会失败,在安全代码上调用验证错误。我的看法是:


=simple_form_for(resource,:as=>resource_name,:url=>registration_path(resource_name))do|f|
%p
=f.标签:电子邮件
=f.文本\字段:电子邮件
=f.错误:电子邮件
%p
=f.标签:名称
=f.text\u字段:名称
=f。错误:名称
%p
=f.标签:密码
=f.密码\字段:密码
=f。错误:密码
%溴/
=f.提示“至少4个字符”
%p
=f.标签:密码确认
=f.密码\字段:密码\确认
=f.错误:密码\u确认
%p
=f.标签:安全性\ U代码
=f.文本\字段:安全\代码
=f.错误:安全代码
=f.提交“注册”:使用=>“提交…”禁用_

这让我发疯,任何帮助都将不胜感激

编辑:

多亏了Desive Google小组,我们找到了一个解决方案。结果是
:安全代码必须添加到
attr\u accessible
列表以及
attr\u accessor
列表中。

请提供解决方案的链接或详细信息。

class User < ActiveRecord::Base
  devise :database_authenticatable, :registerable, :trackable, :validatable
attr_accessible :email, :name, :password, :password_confirmation attr_accessor :security_code
validate :correct_security_code, :on => :create
protected
def correct_security_code errors.add(:security_code, "Security code not valid") if security_code != "1234" end end

= simple_form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f|
  %p
    = f.label :email
    = f.text_field :email
    = f.error :email
  %p
    = f.label :name
    = f.text_field :name
    = f.error :name
  %p
    = f.label :password
    = f.password_field :password
    = f.error :password
    %br/
    = f.hint 'Minimum 4 characters'
  %p
    = f.label :password_confirmation
    = f.password_field :password_confirmation
    = f.error :password_confirmation
  %p
    = f.label :security_code
    = f.text_field :security_code
    = f.error :security_code
  = f.submit 'Sign up', :disable_with => "Submitting..."