2010-06-13 33 views
1

我是红宝石新手,需要你的帮助。从红宝石上的其他模型传递参数

我一定要救一个“主题”,使它像这样:

@topic = Topic.new(params[:topic]) 

但我想传递的其它信息这个话题。它有一个将社区链接到社区的“community_id”字段。 登录的用户在他的桌子上有这些信息。

如何将记录的用户的“community_id”传递给创建的“topic”的“community_id”?

THX对您有所帮助

回答

3
@topic = Topic.new(params[:topic]) 
@topic.community = @user.community 
@topic.save 

这将创建一个你传递哈希参数的新主题对象。并将其定义为用户的社区。

1

有三种方法:(我做了你是如何从用户检索community_id猜测,这会不会是精确的)

@topic = Topic.new(params[:topic]) 
@topic.community = @user.community 

@topic = Topic.new(params[:topic].merge(:community_id => @user.community_id)) 

@topic = @user.community.topics.new(params[:topic]) 

(此代码未经测试)

第二种假定community_id是attr_accessible。

第三个可能是更干净的方式来做到这一点,这是我如何做到这一点。但是,如果模型属于多个模型,则第二种方法很好。