编写一个 rake 任务来修改当前字符串,同时保留字符串的其余部分 Rails 4
Writing a rake task to amend current string while preserving the rest of the string Rails 4
我正在尝试编写一个 rake 任务,它将删除字符串的一部分,同时保留其余部分。我尝试了 chomp 和 slice,但无法正常工作。下面是当前的 rake 任务和它出现在我的数据库中的字符串。目前,它只会用 pets 列中列出的任何内容替换整个字符串。那不是我的objective。我需要删除对宠物的引用,同时将字符串的其余部分保留在便利设施列中。
fix_pets.rake
namespace :listings do
desc 'Update old pets in DB'
task fix_pets: :environment do
Listing.all.each do |listing|
if listing.amenities == "All pets ok"
listing.update(amenities: listing.pets)
elsif listing.amenities == "Pets upon approval"
listing.update(amenities: listing.pets)
end
end
end
end
数据库中的便利设施:
"Central A/C All pets ok Hardwood floors"
抽成任务完成后,便利设施栏应该只有:
"Central A/C Hardwood floors"
如果只想删除特定的匹配字符串,可以试试 gsub
我举个简单的例子,假设。
match_str="All pets ok"
str1 = "Central A/C All pets ok Hardwood floors"
然后
str2= str1.gsub( match_str, "")
或者如果您不想更改原始字符串
str1.gsub!( match_str, "")
你会得到你的字符串
"Central A/C Hardwood floors"
您可以相应更新您的rake任务,仅供参考
如果您想有条件地更改字符串,使用 include?
可能更好。
if listing.amenities.include? 'All pets ok '
listing.update(amenities: listing.amenities.gsub('All pets ok ', ''))
end
我正在尝试编写一个 rake 任务,它将删除字符串的一部分,同时保留其余部分。我尝试了 chomp 和 slice,但无法正常工作。下面是当前的 rake 任务和它出现在我的数据库中的字符串。目前,它只会用 pets 列中列出的任何内容替换整个字符串。那不是我的objective。我需要删除对宠物的引用,同时将字符串的其余部分保留在便利设施列中。
fix_pets.rake
namespace :listings do
desc 'Update old pets in DB'
task fix_pets: :environment do
Listing.all.each do |listing|
if listing.amenities == "All pets ok"
listing.update(amenities: listing.pets)
elsif listing.amenities == "Pets upon approval"
listing.update(amenities: listing.pets)
end
end
end
end
数据库中的便利设施:
"Central A/C All pets ok Hardwood floors"
抽成任务完成后,便利设施栏应该只有:
"Central A/C Hardwood floors"
如果只想删除特定的匹配字符串,可以试试 gsub 我举个简单的例子,假设。
match_str="All pets ok"
str1 = "Central A/C All pets ok Hardwood floors"
然后
str2= str1.gsub( match_str, "")
或者如果您不想更改原始字符串
str1.gsub!( match_str, "")
你会得到你的字符串
"Central A/C Hardwood floors"
您可以相应更新您的rake任务,仅供参考
如果您想有条件地更改字符串,使用 include?
可能更好。
if listing.amenities.include? 'All pets ok '
listing.update(amenities: listing.amenities.gsub('All pets ok ', ''))
end