7

烦人的问题。我正在尝试用换行符 (\n) 替换模型描述字段中的所有分号字符。数据库是sqlite。该字段是文本类型。

如果我在 rails 控制台手动执行此操作(使用 \n 手动输入单个记录的描述以换行),rails 控制台会自动转义 \n,并且描述字段将填充为\\n.

如果我使用 gsub 以编程方式执行此操作,则会出现以下情况:

>> s = Sample.find(:first)

=> ...记录详情...

>> s.description.gsub!(/;/,"\n")

=> ...成功 - 一切看起来都不错,返回值中的新行由 \n... 表示

>> s.save

=> true

>> reload!

Reloading

=> true

>> s = Sample.find(:first)

=> ...记录详情...

>> s.description

=> ...描述字段中仍然有分号而不是换行符...

啊啊啊啊!!!!!!!

4

2 回答 2

28

s.description返回描述的副本,因此gsub!只会修改副本并返回修改后的副本。

尝试这个:

s.description = s.description.gsub(/;/,"\n")
于 2009-10-10T11:23:02.763 回答
0

如果您经常编辑 ActiveRecord 字段,您可以在编辑器中使用 rails 插件console_update编辑它们

于 2009-10-11T06:58:13.840 回答