0

观察 Rails ActionText 变化的最简单方法是什么?我的用例是在编辑富文本字段时发送通知。

由于 ActionText 创建了与模型的关联,而不是模型上的属性,因此 Dirty 模块不可用。

我可以使用自定义脏关联模块,例如:https ://anti-pattern.com/dirty-associations-with-activerecord

我还可以在模型上有一个属性,该属性在每次更新时保存 ActionText::Content 纯文本,然后进行观察。

还有其他选择吗?

4

1 回答 1

1

你可以hash像下面这样使用

class ArticlesController < ApplicationController
  
  ...

  def update
    @article = Article.find(params[:id])
    orig_content_hash = @article.content.to_s.hash

    if @article.update(article_params)
      # hash will have changed if content was updated
      send_notification unless @article.content.to_s.hash == orig_content_hash
      redirect_to article_path(@article.id)
    else
      render :edit
    end
  end

  ...

end
于 2021-01-29T14:33:27.643 回答