1

我最近获得了我公司正在开发的网站的 Ruby 代码。我已经安装了 Rails,并运行 bundle 来获取 gems。然后我设置了 PostgreSQL 并更改了 database.yml 文件中的详细信息。我运行rake db:migrate并返回undefined method confirmable' for #<ActiveRecord::ConnectionAdapters::Table:0xaeae3cc>
Devise is installed,但如果我运行rails g devise:install,它会告诉我进行一些手动设置,我已确保已完成。
如果有帮助,该应用程序将托管在 Heroku 上。

设计 (2.1.2, 2.0.0) 轨道 (3.2.8, 3.2.0)

4

2 回答 2

0

您需要为使用的用户创建一个设计资源

rails generate devise user
于 2012-09-13T09:51:52.250 回答
0

如果您在 Devise 的迁移初始生成后设置了confirmable模块,则需要手动创建迁移

class AddConfirmableToDevise < ActiveRecord::Migration
  def up
    add_column :users, :confirmation_token, :string
    add_column :users, :confirmed_at, :datetime
    add_column :users, :confirmation_sent_at, :datetime
    # add_column :users, :unconfirmed_email, :string # Only if using reconfirmable
    add_index :users, :confirmation_token, unique: true
    execute("UPDATE users SET confirmed_at = NOW()")
    # All existing user accounts should be able to log in after this.
    # Remind: Rails using SQLite as default. And SQLite has no such function :NOW.
    # Use :date('now') instead of :NOW when using SQLite.
    # => execute("UPDATE users SET confirmed_at = date('now')")
    # Or => User.all.update_all confirmed_at: Time.now
  end

  def down
    remove_columns :users, :confirmation_token, :confirmed_at, :confirmation_sent_at
    # remove_columns :users, :unconfirmed_email # Only if using reconfirmable
  end
end
于 2016-06-08T13:39:49.980 回答