我尝试过滤所有场地,并在没有external_join_url的情况下添加任何已创建的CSV。
require 'csv'
namespace :create_dump do
desc "Erase and fill database"
task :venue => :environment do
@venues = Venue.where(external_join_url: nil)
CSV.open("venues_without_join_url.csv", "w") do |csv|
csv << ["Venue Title"]
@venues.each do |venue|
csv << venue.title
end
end
end
end
当我尝试这样做时,我收到错误:
NoMethodError:未定义的方法`map&#39; for&#34; 5 Pancras Square&#34;:String
我知道这意味着我正在尝试映射字符串,但无法看到我创建字符串的部分。我尝试过不同的方式来分配@venues(创建一个数组并挖掘它)无济于事。
答案 0 :(得分:1)
csv&lt;&lt; 期望一个字符串数组意味着csv文件中一行的字段
require 'csv'
namespace :create_dump do
desc 'Erase and fill database'
task venue: :environment do
@venues = Venue.where(external_join_url: nil)
CSV.open('venues_without_join_url.csv', 'w') do |csv|
csv << ['Venue Title']
@venues.each do |venue|
csv << [venue.title]
end
end
end
end