在我的rails(3.2.17)应用程序中,我使用ActiveAdmin(0.6)来管理管理员和普通用户。
管理员管理默认使用活动管理员,并且工作正常。
为了管理普通用户,我创建了一个用户模型(实际上是通过设计,但这不应该改变,因为这个问题是关于用户表管理)
现在我想通过ActiveAdmin允许用户管理
所以我添加了' user.rb'我的app / admin目录中的文件。您可以在下面找到该文件的内容。
出现该页面,并允许我开始创建新用户。
但是,在"创造"表格,我按"创建用户" 它不会创建它并在同一页面上重定向。
在user.rb中,您会注意到我已经注释掉了passoword和password_confirmation。
这就是我使用远程身份验证的原因,因此我不会将密码存储在我的数据库中。
我还从迁移中删除了列(当然,重新对齐了db)。
当我按"创建用户"时,我的日志没有错误,但是这个奇怪的消息:
用户存在(2.0ms)SELECT 1 AS FROM FROM" users"在哪里"用户"。"电子邮件" =' agostinox@gmail.com'限制1
但我的用户不存在!
如果我通过SQL语句创建它:
insert into users (email, created_at, updated_at) values ('agostinox@gmail.com', '2014-01-01', '2014-01-01');
INSERT 0 1
它被正确创建。
从现在开始,用户也可以在主动管理员中进行编辑,即"编辑"功能似乎正常工作。
我也很感谢帮助调试这个。在我看来,ActiveAdmin吞下了一些在路上发生的错误,但我不知道如何将其配置为在其日志中更加冗长。
这是users.rb:
ActiveAdmin.register User do
index do
column :email
#column :current_sign_in_at
#column :last_sign_in_at
#column :sign_in_count
default_actions
end
filter :email
form do |f|
f.inputs "User Details" do
f.input :email
#f.input :password
#f.input :password_confirmation
end
f.actions
end
end
如果我查看Postgres日志,我会看到:
2014-04-07 16:36:42 CEST LOG:声明:SELECT 1 AS AS FROM" users"在哪里"用户"。"电子邮件" =' agostinox@gmail.com'限制1 2014-04-07 16:36:42 CEST LOG:声明:ROLLBACK
也就是说,ActiveAdmin本身发出ROLLBACK,而不是基于从db收到的错误。
我对此非常肯定,因为在类似的应用程序恰好有效的情况下,有一个“INSERT INTO ...”'在' SELECT'之后声明;但是在这里我们看到它在发出INSERT之前回滚。