我正在尝试将https://github.com/ari/jobsworth转换为引擎(我现在正在调用scheduler
它)。User
要做的一件事是在引擎中的主应用程序和模型之间建立关联。
我acts_as_scheduler_user
在这个答案中使用的是:
require "scheduler/engine"
module Scheduler
module ActsAsSchedulerUser
module ClassMethods
def acts_as_scheduler_user(options = {})
has_many :widgets
end
#etc
新生引擎连接到我的主应用程序,当我调用User.reflect_on_all_associations(:has_many)
引擎代码或主应用程序代码时,我成功获得
#<ActiveRecord::Reflection::AssociationReflection:0x000001069e45b0 @macro=:has_many, @name=:widgets, @options={:order=>"widgets.column, widgets.position", :dependent=>:destroy, :extend=>[]}, @active_record=User(id: integer, email: string, encrypted_password: string, reset_password_token: string, reset_password_sent_at: datetime, remember_created_at: datetime, sign_in_count: integer, current_sign_in_at: datetime, last_sign_in_at: datetime, current_sign_in_ip: string, last_sign_in_ip: string, confirmation_token: string, confirmed_at: datetime, confirmation_sent_at: datetime, created_at: datetime, updated_at: datetime, first_name: string, last_name: string, client_id: integer, invitation_token: string, invitation_sent_at: datetime, invitation_accepted_at: datetime, invitation_limit: integer, invited_by_id: integer, invited_by_type: string, client_name_requested: string, mode: string, forem_admin: boolean, forem_state: string, forem_auto_subscribe: boolean), @plural_name="widgets", @collection=true>
并且current_user
在引擎应用程序中工作正常 - 返回主应用程序的 current_user。
但是,当我调用current_user.widgets
引擎的应用程序时,我得到了错误uninitialized constant User::Widget
。
有什么想法吗?
++++++++++
编辑:啊,当我Widget.all
在控制台中执行时,我得到了NameError: uninitialized constant Widget
,但是当我这样做时,Scheduler::Widget.all
我得到了正确的响应。所以我现在的问题是如何current_user.widgets
在使用命名空间时调用?