2010-03-25 17 views
0

相关模型我有HAS_MANY模型邮编:标签隐式创建的字符串

我想做的事:

Post.create({:标签=> [ 'TAG1', '标签2']} )

我该如何做这项工作?

回答

0

Post模型创建自定义setter方法,就像这样:

def tags=(ts) 
    ts.each {|tag| self.tags.create(Tag.new(:tag => tag)) } 
end 

或相似。

2

可以用Nested Attributes来做到这一点。

+0

这与我想要的很接近,但我希望能够直接使用字符串数组,并且我还希望它与现有对象关联(如果有)。 – singpolyma 2010-03-26 13:33:02

+0

在这种情况下,您可能需要为Post模型添加虚拟属性并在其中创建标签。 – Corey 2010-03-26 15:50:20

0

使用acts-as-taggable-on宝石。

class Post < ActiveRecord::Base 
    acts_as_taggable_on :tags 
end 

Post.create(:tag_list => ['tag1', 'tag2'])