usuario se ve algo como esto:Diseñar ensure_authentication_token informa indefinido método
before_save :ensure_authentication_token
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
:token_authenticatable
attr_accessible :email, :password, :password_confirmation,
:remember_me, :first_name, :last_name,
:cell_phone, :city, :state, :country, :user_type
En archivo devise.rb He descomentado:
config.token_authentication_key = :auth_token
Mi migración de usuarios parece:
class DeviseCreateUsers < ActiveRecord::Migration
def self.up
create_table(:users) do |t|
t.database_authenticatable :null => false
t.recoverable
t.rememberable
t.trackable
t.token_authenticatable
t.timestamps
end
add_index :users, :email, :unique => true
add_index :users, :reset_password_token, :unique => true
add_index :users, :authentication_token, :unique => true
end
def self.down
drop_table :users
end
end
Al crear un usuario, los siguientes parámetros vienen
{"utf8"=>"✓",
"authenticity_token"=>"+F8cjCoauVKhZPSJLhW+AAhui1DygBcODsYn4Va/ktY=",
"user"=>{"first_name"=>"any_name",
"last_name"=>"any_name",
"email"=>"[email protected]",
"password"=>"[FILTERED]",
"password_confirmation"=>"[FILTERED]",
"cell_phone"=>"any_number",
"city"=>"some_city",
"state"=>"some_state",
"country"=>"U.S.A",
"user_type"=>"student"},
"commit"=>"Sign up"}
Pero aún así me sale error siguiente mientras que la creación de usuario:
NameError in Devise::RegistrationsController#create
undefined local variable or method `ensure_authentication_token' for #<User:0x007fd4448f7350>
Lo que estoy haciendo mal aquí?
P.S. En mi Gemfile, idearán joya está configurado de la siguiente manera:
gem 'devise', :git => 'git://github.com/plataformatec/devise.git', :branch => 'master'
¿Por qué la línea 'before_save: ensure_authentication_token' en el modelo? ¿Cuál es el razonamiento? – clyfe
Según los recursos que encontré, debería estar en la clase de usuario. Así que me he mantenido en el modelo. –
¿Qué recursos? Creo que ese es el culpable, si lo eliminas, el error desaparecerá, pero la pregunta es "¿Cuáles son las implicaciones?". – clyfe