无法为Authlogic提供种子数据

时间:2011-04-02 02:24:01

标签: ruby-on-rails authlogic seed

当我在Rails 3应用程序中运行rake db:seed时,出现错误:

rake aborted!
undefined method 'find_or_create_by_first_name_and_last_name_and_role_and_email_and_password_and_password_confirmation'

以下是我的create_users.rbseeds.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 个答案:

答案 0 :(得分:2)

根据docs

  

使用find_or_create_by_调用此动态查找程序,如果该对象已存在则将返回该对象,否则将创建该对象,然后返回该对象。 除非在块中给出,否则不会设置受保护的属性。(强调我的)

我猜passwordpassword_confirmation是受保护的属性。

答案 1 :(得分:0)

您在角色和电子邮件之间缺少“和”

User.find_or_create_by_first_name_and_last_name_and_role_and_email_and_password_and_password_confirmation(...)