password_required的国家?是一种未定义的方法

时间:2014-10-10 20:10:40

标签: ruby-on-rails devise

我根据rails casts安装了Devise和OmniAuth。我知道他们有点过时了,但是在我试图注册之前一切正常。没有使用我的omniauth推特功能。

我得到的错误是

NoMethodError at /users/sign_up undefined method `password_required?'

在我的user.rb

1 def password_required?
2  super && provider.blank?
3 end

我尝试将其移至UserHelper文件。没用。

这是我的erb文件

1  <h2> Sign up </h2>
2  <%= simple_form_for(resource, as: resource_name,
3   url: registration_path(resource_name)) do |f| %>
4
5  <%= f.error_notification %>
6
7  <div class="form-inputs">
8    <%= f.input :email, required: true, autofocus: true %>
9    <% if password_required?  %>
10    <%= f.input :password, required: true %>
11    <%= f.input :password_confirmation, required: true %>
12  <% end  %>  
13 </div>
14
14 <div class="form-actions">
16   <%= f.button :submit, "Sign up" %>
17 </div>
18  <% end %>

1 个答案:

答案 0 :(得分:1)

您应该从资源实例调用此方法:

<% if resource.password_required?  %>