Rails3:设计用户has_one关系

时间:2011-06-19 03:36:54

标签: ruby-on-rails-3 devise has-one

我有一个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方法应该从用户抓取团队,否则创建一个可能在注册中保存的团队。

非常感谢任何关于此的指导!

0 个答案:

没有答案