Кажется, мне не хватает магии рубина на рельсах 4. Я хотел создать объект, который включает в себя ActiveModel::Model
, но имя класса содержит два слова.`include ActiveModel :: Model` с именем класса, имеющим более двух слов
Поэтому я создал app/models/registration_form.rb
со следующим кодом:
class RegistrationForm
include ActiveModel::Model
attr_accessor(:email)
validates :email, presence: true
end
Когда объект создается внутри контроллера с помощью RegistrationForm.new
следующего сообщения об ошибке:
Could not find table 'registration_forms'
Когда я просто удалить суффикс Form
и переименуйте файл в app/models/registration.rb
. Все работает отлично.
Когда код сверху выполнен в пределах rails console
, все работает отлично.
StackTrace ошибки показывает, что ActiveRecord называется: https://gist.github.com/anonymous/273986937cd774b5953c
Вы используете 'ActiveModel' или' ActiveRecord'? –
оберните его в модуль и получите доступ к нему как 'Registration :: Form' –
ActiveModel, я не знаю, почему вызывается ActiveRecord. Каков наилучший способ отладить это? – AlexN