通过 Rails 控制台编辑数据库记录

Edit a database record through the Rails console

示例场景:我在 Rails 控制台内的 mac 终端上,刚刚输入了以下数据库记录,其中一个字段拼写错误:

irb(main):019:0> Meme.create(:category => 'funny', :title => 'Balloon frihgtens cat')

问:使用 Rails 控制台,如何修复该记录以正确拼写 "frihgtens"?

您正在使用 irb,而不是 rails console

AppledeMac-mini-2% rails c Loading development environment (Rails 4.2.1) 2.1.6 :001 >

A:如果出现错误,您将收到错误报告。但这不能检查值的溢出。像这样: 2.1.6 :003 > Menu.create(naame: 'aa') ActiveRecord::UnknownAttributeError: unknown attribute 'naame' for Menu.

第一步,查找记录。

步骤 2. 编辑记录。

假设 title 是唯一的,以下应该有效:

> m = Meme.where(:title => 'Balloon frihgtens cat').first
> m.title = 'Balloon frightens cat'
> m.save

阅读 http://guides.rubyonrails.org/active_record_querying.html 以了解有关使用活动记录的更多信息。

  • 查找记录

    您可以使用find或where获取记录 打开 rails 控制台 运行 命令 Meme.all 找出要更新的记录,获取该记录的 ID。(假设 ID 为 5)

    @meme = Meme.find(5) 或 @meme = Meme.where(:title => "Balloon frihgtens cat")

  • 更新记录

    @meme.update(:title => "Balloon frightens cat")

请尝试以下代码:

meme = Meme.where(:title => 'Balloon frihgtens cat').first
meme.update_attribute(:title, 'Balloon frightens cat')

rails console 而非 irb

中键入以下内容
meme = Meme.find_by(:title => 'Balloon frihgtens cat')
meme.title = 'Ballon frightens cat'
meme.save

干杯

你需要做三件事: 1 查找记录:

x = Record.where(title: "whatever")

更新一下:

x.title = "new title"

保存:

x.save

并且不要使用 irb 使用 rails 控制台。

你可以使用这条单线:

Company.update 1, name: 'Rebranded', score: 99

其中第一个参数是 id。

Client.find(3).update(key: "value")

客户端 ---> table,
find(3) ---> 哪条记录,
键 ---> 哪一列,
值 ---> 你想更新什么变化