2011-02-18 56 views
0

我正在创建一个应用程序,其中每个用户都可以通过某种方式创建自己的...“Universe”,其中包含对他们有意义的项目和名称数量等。多用户多环境

我从来没有这样做过,到目前为止,我有典型的情况下,你有用户和管理员,但他们都基本上看在同一件事情。这里每个用户都有独立的环境。

显然用户不应该能够看到别人的环境。

有人可以请我指出在这个问题上的正确方向?也许我可以用一些有用的宝石或资源开始?

欢迎任何建议!

回答

1

我首先使用插件进行身份验证,例如, AuthLogicDevise是两个流行的例子。

这两个都可以让你定义一个User类。

然后,当你向用户显示他们的东西在自己的环境,你可以确保你只用has_manyhas_one,并在轨道has_and_belongs_to_many关系,告诉他们自己的东西。

例如如果它是Facebook的,你可能有这样的事情

Class User < ActiveRecord::Base 
    has_many :news_items 
    has_many :friends 
    has_many :messages 
end 

在你的代码,那么你可以参考

@user.news_items 
@user.friends 
@user.messages 

而且关系将确保你只显示属于该用户的信息。 (注意:实际上关系会更复杂,你可能需要更复杂的逻辑,但这应该让你开始)

+0

非常感谢!然而,它有道理,它不会成为一个代码消费?我的意思是,如果假设我有一个用户,我会使用模型消息。 @messages = Message.find(:all)现在,我需要去@messages = Message.where(:user => session [user_id])...?或者类似的东西? – Lievcin 2011-02-18 16:25:29