私がやりたいことname
のような文字列を保持する列がデータベースにあり、それを分割して、アンパサンドの後のすべてが別の列に入り、文字列の前のすべてが元の場所に残ります。CVM™
最終結果は、という列に入れ™
、列abbr
に保存CVM
する必要がありname
ます。
質問する
1243 次
2 に答える
1
rake タスク ファイルを作成する
lib/tasks/split_name.rake
次に、以下を貼り付け、「TableName」を実際のテーブル名に変更します。
task :split_name => :environment do
TableName.all.each do |r|
a = r.name.split("&") #assuming exact same string format, and not null
r.update_attribute(:name, a[0])
r.update_attribute(:abbr, '&' + a[1])
end
end
次に、そのまま実行します
rake split_name
于 2012-12-11T03:42:12.220 に答える
0
これはRailsレベルで行う必要がありますか? 関数を使用してPostgresだけでこれを行うこともできsplit_part
ます。テーブルで作業していると思いますusers
:
ALTER TABLE users ADD COLUMN abbr VARCHAR;
UPDATE users
SET name = SPLIT_PART(name, '™', 1),
abbr = '™' || SPLIT_PART(name, '™', 2);
必要に応じて、これらのクエリを Rake タスクに焼き付けることもできます。
更新: おっと、あなたは Postgres を使用していると思いました。ただし、他の言語でも同様の方法を使用できるはずです。
于 2012-12-11T03:52:46.270 に答える