Thank you for reply :)
I have used byebug to find out backtrace and realized that it was STI
related issue. The servicename_user table was using type column.
Problem solved by setting
self.inheritance_column = :_type_disabled
2018년 1월 19일 금요일 오후 6시 1분 36초 UTC+9, Frederick Cheung 님의 말:
>
> On Friday, January 19, 2018 at 8:47:29 AM UTC, 정인중 wrote:
>
> > Failure/Error: it { should validate_presence_of(:email) }
> >
> >
> > LoadError:
> > Unable to autoload constant USER, expected
> /Users/injung/Github/api/app/models/user.rb to define it
> >
>
> Are there any references to USER (all caps) anywhere in your app? The next
> one of the backtrack would be a good place to look. When playing around in
> the console rails only loads files that it needs to load, whereas if my
> memory is correct in tests it loads everything upfront. In particular if
> you have (for example) a controller that you don’t use, maybe an experiment
> that didn’t work out that references USER, then this wouldn’t be triggered
> in develipment unless you accessed that controller but would be in tests.
>
> >
> > However, my user.rb file is located exactly where the error message was
> mentioned.
> > For reference, the test was written as follows.
> >
> >
> > require_relative '../../app/models/user'
> >
> >
> > describe User, type: :model do
> > context 'validation' do
> > it { should validate_presence_of(:author) }
> > it { should validate_presence_of(:email) }
> > end
> > end
> >
> >
> > The user model is as follows.
> >
> >
> >
> > class User < ApplicationRecord
> > self.table_name = 'servicename_user'
> > end
> >
> > After some search, I found out that If my table name is
> servicename_user, my user model should be in app/models/servicename/user,
> but I do not want to do like this. Is there any good way?
> > It is difficult to change the table name because it references a lot on
> older systems.
>
> The table name shouldn’t matter as far as constant lookup is concerned and
> looks like you’re setting it correctly.
>
> Fred
>
--
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/rubyonrails-talk/b8c9d076-67c7-4bc5-ae4a-e25cc17eb965%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.