已复制 rails 个应用程序,但现在设计不再有效
Copied rails app but now devise is not working anymore
我通过这样做复制了整个 Rails 应用程序:
$ cp your-old-app your-new-app
然后通过这样做为其创建一个新数据库:
rake db:create db:migrate
一切正常。现在我想测试我复制的应用程序并创建一个新用户。不幸的是,这不起作用。我正在使用 gem.
我在尝试注册新测试用户时遇到的错误是:
Started POST "/users/sign_in" for ::1 at 2019-11-12 19:07:42 +0100
Processing by Devise::SessionsController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"jrmiVvIOB+m2a0WCQWhL4LSpdfw2x9hxP6yhJOC6HVyjXOpTTrxWeF37sTtG/dYaeK1DBr/425svb2zEcO5mhQ==", "user"=>{"email"=>"lkbkj23@test.de", "password"=>"[FILTERED]", "remember_me"=>"0"}, "commit"=>"Log in"}
User Load (0.9ms) SELECT "users".* FROM "users" WHERE "users"."email" = ORDER BY "users"."id" ASC LIMIT [["email", "lkbkj23@test.de"], ["LIMIT", 1]]
Completed 401 Unauthorized in 6ms (ActiveRecord: 0.9ms)
在解释如何复制 Rails 应用程序的线程中,我读到了一些关于需要创建新的 secret_token 变量的信息。这是我唯一可能遗漏的想法。但我不知道这是否是错误,我不知道在哪里以及如何设置新的 secret_token 变量。
在你的新项目的根目录下 运行:
rake secret
现在将此输出复制到剪贴板。然后在 config/initializer/devise.rb 你需要这一行:
config.secret_key = "#{ENV['DEVISE_SECRET_KEY']}"
您需要一种在本地开发环境中加载环境变量的方法。您可以使用 dotenv gem and then you'll have a file in root of project called .env
and you'll add the key you generated with the rake command. Or you might want to checkout figaro gem,最近似乎没有 updated/maintained。在您的 .env 文件中添加一行:
DEVISE_SECRET_KEY=<paste key here>
如果您正在使用 git 版本控制将 .env
添加到 .gitignore
文件,请确保在进行这些更改之前。这将确保您不会意外地将您的密钥提交给您的存储库。
我通过这样做复制了整个 Rails 应用程序:
$ cp your-old-app your-new-app
然后通过这样做为其创建一个新数据库:
rake db:create db:migrate
一切正常。现在我想测试我复制的应用程序并创建一个新用户。不幸的是,这不起作用。我正在使用 gem.
我在尝试注册新测试用户时遇到的错误是:
Started POST "/users/sign_in" for ::1 at 2019-11-12 19:07:42 +0100
Processing by Devise::SessionsController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"jrmiVvIOB+m2a0WCQWhL4LSpdfw2x9hxP6yhJOC6HVyjXOpTTrxWeF37sTtG/dYaeK1DBr/425svb2zEcO5mhQ==", "user"=>{"email"=>"lkbkj23@test.de", "password"=>"[FILTERED]", "remember_me"=>"0"}, "commit"=>"Log in"}
User Load (0.9ms) SELECT "users".* FROM "users" WHERE "users"."email" = ORDER BY "users"."id" ASC LIMIT [["email", "lkbkj23@test.de"], ["LIMIT", 1]]
Completed 401 Unauthorized in 6ms (ActiveRecord: 0.9ms)
在解释如何复制 Rails 应用程序的线程中,我读到了一些关于需要创建新的 secret_token 变量的信息。这是我唯一可能遗漏的想法。但我不知道这是否是错误,我不知道在哪里以及如何设置新的 secret_token 变量。
在你的新项目的根目录下 运行:
rake secret
现在将此输出复制到剪贴板。然后在 config/initializer/devise.rb 你需要这一行:
config.secret_key = "#{ENV['DEVISE_SECRET_KEY']}"
您需要一种在本地开发环境中加载环境变量的方法。您可以使用 dotenv gem and then you'll have a file in root of project called .env
and you'll add the key you generated with the rake command. Or you might want to checkout figaro gem,最近似乎没有 updated/maintained。在您的 .env 文件中添加一行:
DEVISE_SECRET_KEY=<paste key here>
如果您正在使用 git 版本控制将 .env
添加到 .gitignore
文件,请确保在进行这些更改之前。这将确保您不会意外地将您的密钥提交给您的存储库。