0
我試圖理解這兩種在Rails 4中分配虛擬屬性的方式之間的區別。其中一種導致「堆棧層次太深」,其中一個工作正常。我試圖通過解析一個文本字段並用逗號分割來創建一個標籤字段來使用新的ActiveRecord數組字段。工作代碼如下:在Rails中分配虛擬屬性
class Post < ActiveRecord::Base
def tags=(s)
self[:tags] = s.split(/,\s+/)
end
end
但是,當我改變這個由分配給類變量標籤字段分配在這種模式下,它會導致「堆棧級別太深」。
class Post < ActiveRecord::Base
def tags=(s)
self.tags = s.split(/,\s+/)
end
end
有人可以解釋爲什麼發生在我身上嗎?似乎使用self.tags
會導致此虛擬屬性運行,直到堆棧爆炸。 ActiveRecord的哪一部分導致了這一點?