为什么不能使用has_and_belongs_to_many添加ID?

时间:2019-08-15 22:04:41

标签: ruby-on-rails activerecord

我将Post模型覆盖为已创建的发现标签并添加其ID。

def tags_attributes=(attributes)
    new_attributes = attributes.values.map do |tags_attributes|

      tag = Tag.find_by(name: tags_attributes[:url])
      tags_attributes.merge!(id: tag.id) if tag.try(:id)
      tags_attributes
    end

    super(new_attributes)
  end

但获得ActiveRecord::RecordNotFound
(Couldn't find Tag with ID=6 for Post with ID=1):

this guide上有一段

  

如果哈希包含与已经关联的记录匹配的id密钥,则将修改匹配的记录。但是,如果父模型也正在更新,则上述适用。例如,如果您要创建一个名为joe的成员并想同时更新帖子,则会出现ActiveRecord :: RecordNotFound错误。

但是此ActiveRecord::RecordNotFound会在创建,读取,更新时抛出。

0 个答案:

没有答案