In ActiveAdmin Gem, how to add invitation count to Admin model?

时光总嘲笑我的痴心妄想 提交于 2019-12-25 02:19:02

问题


In my project I have implemented activeadmin gem, which is integrated with devise invitable. So in my application admin can invite a customer through an email. While inviting, i'm getting the following error:

*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*

回答1:


This issue has happened after updating the gem devise_invitable to version 1.3.3

To fix it just create a migration

rails g migration AddInvitationsCountToAdminUsers invitations_count:integer

That should add invitations_count field to the table admin_users

For others who has got the same problem but in another table. Here is a migration for a general table users

rails g migration AddInvitationsCountToUsers invitations_count:integer 

Such issue could be caught by 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


来源:https://stackoverflow.com/questions/21747588/in-activeadmin-gem-how-to-add-invitation-count-to-admin-model

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!