我有一个Devise生成的用户模型,其中包含了一个团队。我想完成三件事: 1.允许未注册或登录的人员创建团队 2.在注册期间通过此团队将用户链接到团队 3.每当用户登录时,请召回此团队。
这就是我现在所拥有的:
Team.rb
has_many :members, :dependent => :destroy
belongs_to :user
User.rb
has_one :team
attr_accessible #devise stuff, :team
accepts_nested_attributes_for :team
我已经为Team表生成并迁移了:user_id列。
我的代码的一部分是基于Agile Web Dvpt的工作。第四版。这让我找到了我的团队:
ApplicationsController
def current_team
Team.find(session[:team_id])
rescue ActiveRecord::RecordNotFound
team = Team.create
session[:team_id] = team.id
team
end
我尝试使用这种方法来提出我想要的功能,但感觉这不适合拥有这些东西。
通过搜索stackoverflow,似乎有许多不同的建议。我已经尝试了其中一些无济于事,并希望澄清正确的前进道路是什么。我觉得我应该用自己的方式覆盖Devise RegistrationsController以与用户一起构建团队。如果是user_signed_in ?,则current_team方法应该从用户抓取团队,否则创建一个可能在注册中保存的团队。
非常感谢任何关于此的指导!