📅  最后修改于: 2023-12-03 15:38:26.224000             🧑  作者: Mango
在 Ruby 中,ActiveRecord
库提供了强大的 ORM(对象关系映射)支持,让我们可以方便地与数据库交互。使用 ActiveRecord
,我们可以通过操作对象的方式来实现插入、更新和删除操作,使得代码更加简洁优雅。
不过,有时候我们需要自定义 SQL 查询,比如需要执行一些复杂查询或者使用一些数据库特定的函数。这时,我们可以使用 ActiveRecord
中的 connection
对象来执行 SQL 语句。
下面,我们将演示如何在 Ruby 中创建 SQL 保存方法。
首先,我们需要获取 ActiveRecord::ConnectionAdapters::AbstractAdapter
对象,该对象代表了与数据库的连接。我们可以通过 ActiveRecord::Base.connection
方法获取该对象。
connection = ActiveRecord::Base.connection
接下来,我们可以调用 execute
方法来执行 SQL 语句。该方法接收一个字符串参数,该字符串为要执行的 SQL 语句。
sql = "INSERT INTO users (name, email) VALUES ('John', 'john@example.com')"
connection.execute(sql)
上述代码将向 users
表中插入一条记录,该记录的 name
为 John
,email
为 john@example.com
。
如果需要执行带参数的 SQL 语句,我们可以使用 ActiveRecord 提供的占位符来构造 SQL 语句。如下所示:
sql = "INSERT INTO users (name, email) VALUES (?, ?)"
connection.execute(sql, 'John', 'john@example.com')
上述代码与之前的代码功能相同,只不过使用了 ActiveRecord 提供的占位符,可以更加灵活地构造 SQL 语句。
除了插入操作外,我们还可以执行更新和删除操作。下面以更新操作为例:
sql = "UPDATE users SET email = 'new_email@example.com' WHERE name = 'John'"
connection.execute(sql)
上述代码将更新 users
表中所有 name
为 John
的记录的 email
字段为 new_email@example.com
。
以上就是在 Ruby 中创建 SQL 保存方法的全部内容。使用 ActiveRecord 提供的 execute
方法,我们可以方便地执行原生的 SQL 语句,从而实现更加灵活的数据库操作。