0

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

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

1 回答 1

1

将 gem devise_invitable更新到版本1.3.3后出现此问题

要修复它,只需创建迁移

rails g migration AddInvitationsCountToAdminUsers invitations_count:integer

这应该将invitations_count 字段添加到表admin_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
于 2014-02-14T22:54:21.847 回答