У меня есть модель под названием User
.У меня pluralize_table_names
установлено значение false, поэтому таблица User
использует user
.(Это что-то вроде глотка!)
Интересно, что моя модель ведет себя правильно в разработке, но в работе User
пытается использовать таблицу с именем users
, которой не существует.Все остальные мои модели используют имена в единственном числе.Посмотрите на это:
$ rails console
Loading development environment (Rails 3.0.3)
irb(main):001:0> Client.table_name
=> "client"
irb(main):002:0> Appointment.table_name
=> "appointment"
irb(main):003:0> User.table_name
=> "user"
irb(main):004:0>
$ rails console production
Loading production environment (Rails 3.0.3)
irb(main):001:0> Client.table_name
=> "client"
irb(main):002:0> Appointment.table_name
=> "appointment"
irb(main):003:0> User.table_name
=> "users"
irb(main):004:0>
Как видите, все хорошо, кроме User
в производстве.Что дает?
Редактировать: вот код модели в производстве:
class User < ActiveRecord::Base
acts_as_authentic
end
И в разработке:
class User < ActiveRecord::Base
acts_as_authentic
end
Та же самая вещь.Я даже указал свой производственный экземпляр на ту же базу данных, что и разработка, и проблема не устранена.У меня возникли эти проблемы, когда я начал использовать Authlogic, поэтому я начинаю подозревать, что среда разработки каким-то образом знает о некоторых вещах Authlogic, которых нет в производственной среде.
Обновление: я пытался убить как можно большедвижущиеся части, насколько это возможно.Я настроил и свою производственную среду, и свою среду разработки так, чтобы они указывали на базу данных dev.Это ничего не изменило.Я изменил свою производственную среду на dev, и она начала работать.Я изменил свою среду разработки на производственную, и она перестала работать.Это говорит мне, что есть кое-что о переходе от dev к производству, что заставляет его перестать работать.Я понятия не имею, что, хотя.