devise_invitable icon indicating copy to clipboard operation
devise_invitable copied to clipboard

Migration generator uses wrong table name in case of STI

Open heaven opened this issue 10 years ago • 1 comments

Hi, I have the next STI set up:

class User < ActiveRecord::Base; end
class Member < User; end
class Employee < User; end

And

Member.table_name
=> "users"

Both Member and Employee have different devise configs, so I did rails generate devise_invitable Member, resulting migration tries to modify table members, which doesn't exists.

Best, Alex

heaven avatar Jan 23 '15 10:01 heaven

DeviseInvitable generator inherits from Rails::Generators::NamedBase: https://github.com/scambra/devise_invitable/blob/master/lib/generators/devise_invitable/devise_invitable_generator.rb#L3

And migration uses table_name, which is set by Rails::Generators::NamedBase: https://github.com/scambra/devise_invitable/blob/master/lib/generators/active_record/templates/migration.rb#L3

Probably Rails::Generators::NamedBase doesn't work for STI models, because you usually doesn't use rails g model or rails g resource for STI models, only for base model.

I'm not sure how it can be fixed.

scambra avatar Jan 30 '15 12:01 scambra