小编D1D*_*4D5的帖子

如何访问 update_all 生成的原始 SQL 语句(ActiveRecord 方法)

我只是想知道是否有一种方法可以访问为 update_all ActiveRecord 请求执行的原始 SQL。举个例子,看下面这个简单的例子:

Something.update_all( ["to_update = ?"], ["id = ?" my_id] )
Run Code Online (Sandbox Code Playgroud)

在 Rails 控制台中,我可以看到原始 SQL 语句,所以我猜我可以通过某种方式访问​​它?

PS - 我对 update_all 特别感兴趣,无法将其更改为其他任何内容。

谢谢!

ruby ruby-on-rails ruby-on-rails-3 rails-activerecord

4
推荐指数
1
解决办法
2194
查看次数

使用 Hotwire 重新加载涡轮框架(刺激/涡轮/轨道)

过去一两个月我一直在与 Hotwire 合作,并试图了解如何在第一次渲染后重新加载特定的涡轮框架。

假设我有一个用于用户搜索的简单 Rails 控制器。如果它的参数为name,则返回与该参数匹配的用户name,如果没有,则返回所有用户。

class UserSearchController
  def show
    return User.where(name: params[:name]) if params[:name].present?

    return User.all
  end
end
Run Code Online (Sandbox Code Playgroud)

我连接了一个 Turboframe,它可以正确延迟加载 DOM 中的所有用户。我想要弄清楚的是如何更新 Turboframe 并重新绘制框架。我已经尝试了一些 Stimulus 并尝试将 src 设置为端点,这是我在其他帖子中看到的建议:

  reload() {
    const {src: src} = this;
    this.src = null;
    this.src = src;
  }
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用,它不会重新绘制涡轮框架。我可以看到它正在向 Rails 后端发出请求。

有人能指出我在页面加载后重新加载/重绘框架的方向吗?我不确定我是否完全偏离了方向或者处于正确的位置。

ruby-on-rails stimulusjs hotwire

4
推荐指数
1
解决办法
3941
查看次数