Я использую движок блогов в режиме rails под названием Monologue. Я хотел бы, чтобы одна из моделей двигателей имела отношения belongs_to и has_many с моей основной моделью приложений. У пользователя (автора) может быть много сообщений, а сообщение принадлежит автору (User Model). Я попробовал namespacing модель в class_name, но он все еще искал модель внутри движка.Rails принадлежит_to has_many отношения, основное приложение и движок
Ошибка
NameError: uninitialized constant Monologue::Post::MyApp::User
post.rb
class Monologue::Post < ActiveRecord::Base
belongs_to :author, :class_name => "MyApp::User", :foreign_key => "author_id"
end
user.rb
class User < ActiveRecord::Base
has_many :posts, :class_name => "Monologue::Post", :foreign_key => "author_id"
end
Схема
create_table "monologue_posts", force: true do |t|
t.integer "author_id"
end
Я получил это далеко, используя: Creating a belongs_to relationship with a model from the main app from an engine model
ли я, чтобы настроить каждый экземпляр пользователя в коде моего приложения для MyApp :: User? – MicFin
@MicFin Вы определили имя класса в «Monologue :: Post'' user.rb' как ': class_name =>« MyApp :: User », поэтому вам нужно изменить имя класса' user.rb' а также – Pavan
Переименование пользовательской функции разрывает рельсы активной поддержки /Users/Mike/.rvm/gems/ruby-2.1.5/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:481:in 'load_missing_constant ': Не удалось автозагрузить постоянный пользователь, ожидаемый /Users/Shared/code/kindrdfood/RecRm/app/models/user.rb, чтобы определить его (LoadError) – MicFin