7

迷惑な問題。モデルの説明フィールドのすべてのセミコロン文字を改行文字(\ n)に置き換えようとしています。データベースはsqliteです。フィールドはテキストタイプです。

Railsコンソールで手動で行うと(改行に\ nを使用して単一のレコードの説明を手動で入力する)、Railsコンソールは自動的に\ nをエスケープし、説明フィールドは。で埋められ\\nます。

gsubを使用してプログラムで実行すると、次のような状況になります。

>> s = Sample.find(:first)

=>...記録の詳細..。

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

=> ... success-すべて良さそうです、戻り値の新しい行は\n..で表されます。

>> s.save

=> true

>> reload!

Reloading

=> true

>> s = Sample.find(:first)

=>...記録の詳細..。

>> s.description

=> ...説明フィールドには、改行文字ではなくセミコロンが含まれています...

AHHHHHH !!!!!!!

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 に答える