【问题标题】:In ActiveAdmin Gem, how to add invitation count to Admin model?在 ActiveAdmin Gem 中,如何将邀请计数添加到 Admin 模型?
【发布时间】:2014-02-13 07:15:28
【问题描述】:

在我的项目中,我实现了,它与设计邀请集成。因此,在我的应用程序中,管理员可以通过电子邮件邀请客户。邀请时,我收到以下错误:

*ActiveRecord::StatementInvalid in Admin::CustomersController#send_invitation
Mysql2::Error: Unknown column 'invitations_count' in 'field list': UPDATE `admin_users` SET `invitations_count` = COALESCE(`invitations_count`, 0) + 1 WHERE `admin_users`.`id` = 1*

【问题讨论】:

  • 您是否将invitations_count 字段添加到您的admin_users 表中?启用invitable
  • 也添加您的方法...您在哪里编写了邀请代码..
  • 查看我在您的第一个问题stackoverflow.com/questions/21743644/… 上发布的答案,看看是否有帮助。

标签: activeadmin gem ruby-on-rails ruby activeadmin devise-invitable


【解决方案1】:

将 gem devise_invitable 更新到版本 1.3.3

后出现此问题

要修复它,只需创建迁移

rails g migration AddInvitationsCountToAdminUsers invitations_count:integer

这应该将invitations_count 字段添加到表admin_users

对于遇到同样问题但在另一张桌子上的其他人。这是一个通用表 users

的迁移
rails g migration AddInvitationsCountToUsers invitations_count:integer 

这样的问题可能会被 rspec 发现

it 'user can be invited with passing current_user' do
  current_user_attr = {email: 'user1@example.com', password: 'xxxxxx', password_confirmation: 'xxxxxx', ... add your fields }
  user_attr = {email: 'user2@example.com', password: 'xxxxxx', password_confirmation: 'xxxxxx', ... add your fields }
  current_user = User.create!(current_user_attr)
  user = User.create!(user_attr)
  user.invite!(current_user).class.should eq(Mail::Message)
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多