我刚刚使用Mike Hartl的"Learn rails by Example"构建了一个rails 3应用程序。我已经准备好部署它了,但我对如何将管理员添加到应用程序感到困惑。我将是唯一的管理员。在部署之前会添加管理员吗?如果是,我该如何操作。
当你谈论"管理员帐户"时,我认为你需要的实际上是两件不同的事情:身份验证(登录)&授权(登录可以/不能执行的操作)。
在铁轨下,一种方法是使用两种不同的宝石。我建议你看看设计和cancan。它们都是由铁路超级明星何塞·瓦利姆和瑞安·贝茨开发并积极维护的。
本教程实际上并没有创建一个可以创建管理员的界面。如果你想测试不允许删除其他管理员帐户的部分,你可以通过在sample_data.rake文件中添加2个管理员来使用faker进行测试:
def make_users
admin = User.create!(:name => "Example User",
:email => "example@railstutorial.org",
:password => "foobar",
:password_confirmation => "foobar")
admin.toggle!(:admin)
admin2 = User.create!(:name => "Example User2",
:email => "example2@railstutorial.org",
:password => "foobar",
:password_confirmation => "foobar")
admin.toggle!(:admin)
99.times do |n|
name = Faker::Name.name
email = "example-#{n+1}@railstutorial.org"
password = "password"
User.create!(:name => name,
:email => email,
:password => password,
:password_confirmation => password)
end
end
如果你想在生产中添加一个管理员,我猜你可以创建你的帐户,用数据库编辑器切换管理功能,然后将数据库推送到生产服务器?我会这么做,但我决不是专家。
对于我的web应用程序上的管理控制面板,我正在使用typus-gemhttps://github.com/fesplugas/typus/
它将生成一个管理页面,默认情况下,typus将使用您的模型defaultscope来获取数据。
我正忙于同样的事情!
我在STACK:上发现了这个
rails c
Loading development environment (Rails 3.0.0.beta3)
irb(main):001:0> admin = Admin.create! do |u|
irb(main):002:1* u.email = 'sample@sample.com'
irb(main):003:1> u.password = 'password'
irb(main):004:1> u.password_confirmation = 'password'
irb(main):005:1> end
我将Admin更改为User,但问题是它创建了一个普通用户,而不是管理员用户。我们需要在某个地方放入- admin.toggle!(:admin)
或使其成为现实。如果我找到其他东西,我会通知你的。