V_H*_*V_H 4 ruby authentication ruby-on-rails admin authlogic
我一直在使用Authlogic rails插件.我真正使用的是拥有一个可以编辑网站的管理员用户.它不是人们注册帐户的网站.我将最终使创建用户方法受到已登录用户的限制,但当然,当我清除数据库时我无法创建用户,因此我必须以某种方式预先填充它.我试图进行迁移以放置我创建的用户的转储,但这不起作用,看起来非常hacky.处理这个问题的最佳方法是什么?这很麻烦,因为密码被哈希,所以我觉得我必须创建一个然后拉出哈希条目...
Rails 2.3.4为种子数据库添加了一个新功能.
您可以在db/seed.rb文件中添加种子:
User.create(:username => "admin", :password => "notthis", :password_confirmation => "notthis", :email => "admin@example.com")
Run Code Online (Sandbox Code Playgroud)
然后插入:
rake db:seed
Run Code Online (Sandbox Code Playgroud)
用于生产或测试
RAILS_ENV="production" rake db:seed
RAILS_ENV="test" rake db:seed
Run Code Online (Sandbox Code Playgroud)
到目前为止我在2.3.4中最喜欢的功能
如果您使用的是> = Rails 2.3.4,则新功能包括db/seeds.rb文件.现在这是播种数据的默认文件.
在那里,您可以简单地使用您的模型User.create(:login=>"admin", :etc => :etc)来创建数据.
如果您已经拥有数据库,这种方法rake db:setup也会对数据进行播种rake db:seed.
在较旧的项目中,我有时会使用像users.yml这样的东西来修复(记住直接更改密码):
admin:
id: 1
email: admin@domain.com
login: admin
crypted_password: a4a4e4809f0a285e76bb6b35f97c9323e912adca
salt: 7e8455432de1ab5f3fE0e724b1e71500a29ab5ca
created_at: <%= Time.now.to_s :db %>
updated_at: <%= Time.now.to_s :db %>
rake db:fixtures:load FIXTURES=users
Run Code Online (Sandbox Code Playgroud)
或者最后,正如其他人说你有rake任务选项,希望有所帮助.
| 归档时间: |
|
| 查看次数: |
3816 次 |
| 最近记录: |