从ruby上的其他模型传递参数

时间:2010-06-13 13:05:37

标签: ruby-on-rails activerecord

我是红宝石的新手,需要你的帮助。

我必须保存一个“主题”,然后像这样:

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

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

如何将“community_id”从已登录用户传递到所创建“主题”的“community_id”?

thx求助

2 个答案:

答案 0 :(得分:3)

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

这将使用您传递的哈希参数创建一个新的Topic对象。并将它的社区定义为用户的一个。

答案 1 :(得分: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。

第三种可能是更清洁的方式,我就是这样做的。如果模型属于多个模型,则第二个很好。

相关问题