Rub*_*tic 2 session join ruby-on-rails
我想构建用户可以加入的"组",所需的步骤和事情的流程在我脑海中,但构建它的代码缺少一些,因为我还在学习rails.我想就您的想法提出一些建议,以便在下面完成以下任务:
我想创建一个模型会话,如组|名称| 但是,我如何存储此会话中的多个用户?我应该创建一个user_id的数组,并创建一个像groups | name | user_ids这样的额外列吗?
什么是最佳实践以及我可以使用哪种rails(3)方法来获得上述功能的粗略版本并运行?
据我所知,这是一个多对多的关系.所以你有3个型号:
class User < AR
has_many :memberships
has_many :groups, :through => :memberships
end
class Membership < AR
belongs_to :user
belongs_to :group
end
class Group < AR
has_many :memberships
has_many :users, :through => :memberships
end
Run Code Online (Sandbox Code Playgroud)
并了解用户属于哪个组:
@group = Group.find_by_name("test")
@users_group = @group.users
Run Code Online (Sandbox Code Playgroud)
确保用户创建组也属于它:
# in group_controller.rb
def create
@group = Group.new(params[:group])
@group.users << current_user
if @group.save
# ... etc
end
end
Run Code Online (Sandbox Code Playgroud)
当然current_user应该存在/与通常一起登录before_filter(如果我没记错的话authenticate!,那就是设计)
| 归档时间: |
|
| 查看次数: |
4694 次 |
| 最近记录: |