Learning Devise for Rails

I'm new to rails and was trying to get a handle on Devise. I'm
following the Packt Pub - Learning Devise For Rails tutorial and have a
problem around pg 19-20 (CH2). I've created a user, logged out, but
when I try to login again I get this error:

NameError in Devise::SessionsController#create
undefined local variable or method `signin' for
#<Class:0x00000004352b00>

I was confused because I see "Sessions Controller" in the error, but the
code lists is in my devise user model:

class User < ActiveRecord::Base

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

    attr_accessor :signin

    validates :username, :uniqueness => {:case_sensitive => false}

    def self.find_first_by_auth_conditions(warden_conditions)
      conditions = warden_conditions.dup
      where(conditions).where(["lower(username) = :value
        OR lower(email) = :value", { :value => signin.downcase }]).first
    end

end

Here's a link to everything I have so far:
https://github.com/GBressler/Learning-Devise-for-Rails/tree/master/Ch2/first_app_extensions

The tutorial:
https://www.packtpub.com/application-development/learning-devise-rails

Any help that could be provided would be greatly appreciated!

Attachments:
http://www.ruby-forum.com/attachment/10847/Screenshot_from_2015-06-08_22_52_49.jpg

If you are using Rails 4+, you need to read the Strong parameter section of the Devise github page here.

I'm new to rails and was trying to get a handle on Devise. I'm
following the Packt Pub - Learning Devise For Rails tutorial and have a
problem around pg 19-20 (CH2). I've created a user, logged out, but
when I try to login again I get this error:

NameError in Devise::SessionsController#create
undefined local variable or method `signin' for
#<Class:0x00000004352b00>

I was confused because I see "Sessions Controller" in the error, but the
code lists is in my devise user model:

class User < ActiveRecord::Base

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

   attr_accessor :signin

What is this attar_accessor supposed to do? Do you set it to a value at any point? This is not a part of Devise, as far as I can tell.

Walter

I found this link very interesting:

https://github.com/plataformatec/devise/wiki/How-To:-Allow-users-to-sign-in-using-their-username-or-email-address

I don’t know the dynamics of Devise, but I looked at your application:
2 controllers: application and home. home has show, new, edit defs. All empty
1 model user
3 view folders: devise, home, layouts.
Devise has folder session with new.html.erb. It has:
<%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>

<%= f.label "Username or Email" %>
<%= f.text_field :signin, autofocus: true %>
Where have you defined resource?

Thanks for the help, everyone. After following the link to github that
Elizabeth posted I was able to cut and paste some updated code.

Thanks again.