Невозможно заполнить данные для Authlogic - PullRequest
0 голосов
/ 02 апреля 2011

Когда я запускаю rake db:seed в своем приложении на Rails 3, я получаю ошибку:

rake aborted!
undefined method 'find_or_create_by_first_name_and_last_name_and_role_and_email_and_password_and_password_confirmation'

Ниже приведены мои create_users.rb и seeds.rb файлы соответственно. Почему метод find_or_create_by_* не создается динамически?

def self.up
    create_table :users do |t|
      t.string :first_name, :null => false
      t.string :last_name, :null => false
      t.string :role, :null => false
      t.string :email, :null => false
      t.string :crypted_password, :null => false
      t.string :password_salt, :null => false
      t.string :persistence_token, :null => false
      t.string :current_login_ip
      t.string :last_login_ip
      t.datetime :current_login_at
      t.datetime :last_login_at

      t.timestamps
    end
  end

User.find_or_create_by_first_name_and_last_name_and_role_and_email_and_password_and_password_confirmation(...)

Ответы [ 2 ]

2 голосов
/ 02 апреля 2011

Согласно документам :

Этот динамический искатель вызывается с помощью find_or_create_by_ и возвращает объект, если он уже существует, и в противном случае создает его, а затем возвращает его. Защищенные атрибуты не будут установлены, если они не заданы в блоке. (выделено мной)

Полагаю, password и password_confirmation являются защищенными атрибутами.

0 голосов
/ 02 апреля 2011

Вам не хватает "и" между ролью и электронной почтой

User.find_or_create_by_first_name_and_last_name_and_role_and_email_and_password_and_password_confirmation (...)

...