2010-03-25 21 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'])