2011-03-31 70 views
1

我在视频模式这种方法:此方法仅添加一个标签,但我需要多个标签!

def assign_topics 
    if @topic_names 
    self.topics = @topic_names.map do |name| 
     Topic.find_or_create_by_name(name) 
    end 
    end 
end 

topic_names作为一个虚拟的属性。这是什么,每次我添加一个新的话题,它似乎取代旧的一个新的。我不希望发生这种情况。我想要它添加一个新的话题。我怎样才能做到这一点?

请注意,这不是我的关联问题。我已经通过关联正确实现了has_many。

回答

1

没关系,我想通了:

def assign_topics 
    if @topic_names 
    self.topics << @topic_names.map do |name| 
     Topic.find_or_create_by_name(name) 
    end 
    end 
end