假设我有一个 ruby 哈希:
person={:name=>:Alex,:age=>10}
我希望我可以调用这样的 API:
db.save :people, person
它将在 mysql 数据库上执行以下 SQL:
insert nto people (name,age) values ('Alex',10)
这可以通过使用导轨或其他红宝石宝石来实现吗?
假设我有一个 ruby 哈希:
person={:name=>:Alex,:age=>10}
我希望我可以调用这样的 API:
db.save :people, person
它将在 mysql 数据库上执行以下 SQL:
insert nto people (name,age) values ('Alex',10)
这可以通过使用导轨或其他红宝石宝石来实现吗?
你可以调用 ClassName.create!(your_hash),所以在你的场景中它看起来像这样:
Person.create!(person) # to create a record right away
或者
person = Person.new(person) # to initialize the object first
person.save # and then save it
无需使用任何外部 gem,这是标准的 ActiveRecord,Rails 核心库之一。
类人 < Activerecord::Base end
将 Person 类放在模型文件中。对应的表名应该是persons,它是模型名的复数形式,首字母小写。只需查看 Rails 的约定。
现在试试
Person.create!(attributes).
属性就像列名对应的值。
例子
{:name => 'sandip'} #here name is the column name and value is the 'sandip'