active admin,一个管理无法创建新记录的常规用户的页面

时间:2014-04-06 20:15:03

标签: ruby-on-rails-3 activeadmin

在我的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

编辑1

如果我查看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之前回滚。

0 个答案:

没有答案