以下将是有关Ruby活动记录中用于操纵(读/写)数据的CRUD方法的教程。在此处了解有关活动记录的更多信息Active Record documentation
crud?
这是什么意思?如果您还不熟悉Crud,我可以简要地解释这些概念。
CRUD是创建,阅读,更新和删除的首字母缩写。
为什么crud?
CRUD大量用于编程中,作为与存储数据通信的一种方式。这些所谓的存储数据通常来自API和 /或数据库。访问或操纵我们使用CRUD的信息。
crud示例
下面我将证明CRUD方法的使用以及这些调用方法的输出。我建议参考任何澄清的主动记录文档! CRUD methods
创造
在活动记录中,我们可以使用.new方法或.greate方法创建对象。我们使用.greate方法来创建和保存新对象。通常,在主动记录中,在Ruby类中调用了.greate方法来创建该类的实例。该方法以变量或哈希的形式进行参数。
//.create method
adele_album = Album.create(song1: "hello", song2: "someone like you")
or
adele_song = Song.create("hello")
// .new method
album = Album.new
album.song1 = "hello"
album.song2 = "someone like you"
album.save
使用.new方法创建新对象时,需要使用保存方法来使对象持续在数据库中,这与.greate方法一起创建和保存对象。
读
活动记录使从数据库中检索数据相当容易,将其视为一种getter方法,因为它根据调用方法返回。
例如:
//the .all method will return all instances of album.
Album.all
=> [song1: "hello", song2: "someone like you"]
//the .find method returns based on the id passed in as a argument.
Album.find(2)
=> [song2: "someone like you"]
使用活性记录时,请记住在使用.new方法的AFT6EDR时创建对象或保存AFT6EDR时,请自主生成。
//the first and last method returns the first object/instance //in the class and the last method returns the last //object/instance
Album.first
=>[song1: "hello"]
Album.last
=>[song2: "someone like you"]
更新
在我们能够更新对象之前,必须首先读取它。这将为我们提供要更新的确切对象。可以使用.save方法或.update方法进行更新。
.SAVE方法最适合用于数据库中尚未存在的对象,最佳使用是在需要更改的数据库中存在的对象上。
//for objects not already in the database we use .save
song = Album.find_by(song1: "hello")
song.song1 = "Rolling in the deep"
song.save
or
song = Album.find_by(song1: "hello")
song.update(song1: "Rolling in the deep")
检查数据库以确保进行更改。
删除
删除对象时,您可以根据所使用的删除方法读取对象或将对象传递为参数。以下将是删除方法的几个示例。
//when using the .destroy method, read the object first.
first_song = Album.first
first_song.destroy
//the code above can be short handed
Album.first.destroy
//we can be specific with the key and values of a class //instance we want to destroy by using the .destroy_by method
//this method takes in an argument of what you want deleted
//however the destroy_by will delete all instances that have //the argument passed in, in this example all song1 keys with //the value "hello" will be deleted.
Album.destroy_by(song1: "hello")
//to delete all instances in a class use the .destroy_all //method
Album.destroy_all
//all instances in the Album class will be deleted.