Passing a value from form to a model ?

Hello,
I’m writing an application that has a user registration functionality, the sign up form has a field that is called ‘card’, here the user is supposed to enter a valid PIN code. PIN codes are stored in a table called Cards, each card has a PIN and a serial number. If the PIN is correct and available in the Cards table registration will be completed successfully, else registration will fail.
I’m relatively new to rails and there still some concepts that are not clear to me, this is one of them. My problem is with the PIN code validation as described below:

#Viewer:

Signup

<%= error_messages_for :user %> <% form_for :user, :url => users_path do |f| -%>

Username:
<%= f.text_field :username, :size => 25 %>

Email:
<%= f.text_field :email, :size => 25 %>

Password:
<%= f.password_field :password, :size => 25 %>

Password Confirmation:
<%= f.password_field :password_confirmation, :size => 25 %>

Mobile Number:
<%= f.text_field :mobile_number, :size => 13%>

Pin Code:
<%= f.text_field :card, :size => 13%>

<%= submit_tag ‘Sign Up’ %>
<% end -%>

#Model: User.rb
has_many :cards

def self.available_pin?(card)
Card.find_by_pin(card) ? true : false
end

#Controller: users_controller.rb

def create
if User.available_pin?(params[:card])

  @user = User.new(params[:user])
  if @user.save
    self.logged_in_user = @user
    flash[:notice] = "Your account has been created."
    redirect_to messages_url
  else
    render :action => 'new'
  end
else
  flash[:notice] = "PIN is wrong"
 
end

end

When I try the registration I always get the flash message that says: ‘PIN is wrong’ even when I try an available PIN.

Thanks in advance.

Because you are using form_for, that parameter will be available as params[:user][:card], not params[:card]

Fred