通过 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) ---> 哪条记录,
键 ---> 哪一列,
值 ---> 你想更新什么变化
示例场景:我在 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) ---> 哪条记录,
键 ---> 哪一列,
值 ---> 你想更新什么变化