Rails 4 で仮想属性を割り当てるこれら 2 つの方法の違いを理解しようとしています。テキストフィールドを解析し、コンマで分割してタグフィールドを作成することにより、新しい ActiveRecord 配列フィールドを使用しようとしています。作業コードは次のとおりです。
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 のどの部分が原因ですか?