2

サインインボタンを押すたびに、次のエラーが表示されます。

NoMethodError in Devise/sessions#new

Showing /Users/chanel.n/svn-    work/gwb/trunk/PMOCCU/ProcessEnforcer/app/views/devise/sessions/new.html.erb where line #5 raised:

undefined method `email' for #<User id: nil, name: nil, created_at: nil, updated_at: nil>
Extracted source (around line #5):

2: 
3: <%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>
4:   <div class="field"><%= f.label :email %><br />
5:   <%= f.email_field :email %></div>
6: 
7:   <div class="field"><%= f.label :password %><br />
8:   <%= f.password_field :password %></div>
Rails.root: /Users/chanel.n/svn-work/gwb/trunk/PMOCCU/ProcessEnforcer

Application Trace | Framework Trace | Full Trace
app/views/devise/sessions/new.html.erb:5:in `block in    _app_views_devise_sessions_new_html_erb___4179931318693150703_70215900182100'
app/views/devise/sessions/new.html.erb:3:in `_app_views_devise_sessions_new_html_erb___4179931318693150703_70215900182100'

電子メールを含む私のユーザーモデルは次のとおりです。

class User < Role
has_and_belongs_to_many :roles

attr_accessible :name, :roles

# Include default devise modules. Others available are:
# :token_authenticatable, :confirmable,
# :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
     :lockable, :timeoutable, :trackable, :validatable, :token_authenticatable

# Setup accessible (or protected) attributes for your model
attr_protected :email, :password, :password_confirmation, :department, :encrypted_password 
# attr_accessible :title, :body, :remember_me

 validates_presence_of :email

end

なんらかの理由で、それは電子メールを認識しません。

他の誰かがこの問題に遭遇しましたか?

4

3 に答える 3

0

ユーザーモデルではメールフィールドにアクセスできません。次を使用してアクセスできるようにする必要があります。

attr_accessible :name, :roles, :email
于 2012-07-26T22:02:50.133 に答える
0

Devise はデフォルトで電子メールをログインとして使用するため、:email および :encrypted_pa​​ssword フィールドが必要です。

User モデルにはどちらもありません。したがって、これらのフィールドを追加する必要があります。

于 2012-07-26T19:26:14.597 に答える
0

私の場合、他の提案は関係ありませんでした。私のデバイスのバージョンは古かった。3.2.4にアップグレードすると修正されました。

主な問題は、devise が生成する移行が新しいバージョンでは異なるように見えることでした。

于 2014-07-27T16:53:32.907 に答える