如何将 csv 文件复选框值导出到 rails 上的 ruby 中的 table?
how to export csv file checkbox value into table in ruby on rails?
school_type col 复选框数据导出 csv 文件到 table。我在我的代码下试过
student.rb
# for csv file
def self.to_csv
attributes = %w{id status email temp_registration_date full_name full_name_kana main_registration_date email2 postal_code1 postal_code2 address1 address2 tel_main tel_sub sex school_type school_name school_name_initial department_name faculty_type graduation_month
industry_id industry_most_id occupation_id occupation_most_id desired_work_region_code club_flg school_club_name school_club_type club_name lab_name major_field
research_subject_title research_subject_summary interested_companies personal_summary how_known how_known_other mail_magazine_flg}
CSV.generate(headers: true) do |csv|
csv << attributes
all.each do |student|
csv << [student.id,student.name, student.sex, if (student.school_type == 1)
大学
elsif (student.school_type == 2)
大学院(修士)
elsif (student.school_type == 3)
大学院(博士)
elsif (student.school_type == 4)
短大
elsif (student.school_type == 5)
専門学校
elsif (student.school_type == 6)
高専
end]
end
end
我有我的table
My table data image
您可能需要更多这样的东西:
attributes = %w{id status email...}
CSV.generate(headers: true) do |csv|
# Build headers
csv << attributes
all.each do |student|
# use a variable to set the school_type string
school_type_text = if (student.school_type == 1)
"大学"
elsif (student.school_type == 2)
"大学院(修士)"
elsif (student.school_type == 3)
"大学院(博士)"
elsif (student.school_type == 4)
"短大"
elsif (student.school_type == 5)
"専門学校"
elsif (student.school_type == 6)
"高専"
end
csv << [student.id, student.name, student.sex, school_type_text]
end
end
我运行那个OpenStruct.new({school_type: 2, id: 1, name: 'test'})
(不在 Rails 中)并且输出是:
"id,status,email,temp_registration_date,full_name,full_name_kana,main_registration_date,email2,postal_code1,postal_code2,address1,address2,tel_main,tel_sub,sex,school_type,school_name,school_name_initial,department_name,faculty_type,graduation_month,industry_id,industry_most_id,occupation_id,occupation_most_id,desired_work_region_code,club_flg,school_club_name,school_club_type,club_name,lab_name,major_field,research_subject_title,research_subject_summary,interested_companies,personal_summary,how_known,how_known_other,mail_magazine_flg
\n1,test,something,大学院(修士)\n"
而不是每次都比较值你可以有一个散列
SCHOOL_TYPE = {1=>'大学', 2=>'大学院(修士)', 3=>'大学院(博士)', 4=>'短大', 5=>'専門学校', 6=>'高専'}
然后做这样的事情
CSV.generate(headers: true) do |csv|
csv << attributes
all.each do |student|
csv << [student.id, student.name, student.sex, SCHOOL_TYPE[student.school_type]]
end
end
school_type col 复选框数据导出 csv 文件到 table。我在我的代码下试过
student.rb
# for csv file
def self.to_csv
attributes = %w{id status email temp_registration_date full_name full_name_kana main_registration_date email2 postal_code1 postal_code2 address1 address2 tel_main tel_sub sex school_type school_name school_name_initial department_name faculty_type graduation_month
industry_id industry_most_id occupation_id occupation_most_id desired_work_region_code club_flg school_club_name school_club_type club_name lab_name major_field
research_subject_title research_subject_summary interested_companies personal_summary how_known how_known_other mail_magazine_flg}
CSV.generate(headers: true) do |csv|
csv << attributes
all.each do |student|
csv << [student.id,student.name, student.sex, if (student.school_type == 1)
大学
elsif (student.school_type == 2)
大学院(修士)
elsif (student.school_type == 3)
大学院(博士)
elsif (student.school_type == 4)
短大
elsif (student.school_type == 5)
専門学校
elsif (student.school_type == 6)
高専
end]
end
end
我有我的table
My table data image
您可能需要更多这样的东西:
attributes = %w{id status email...}
CSV.generate(headers: true) do |csv|
# Build headers
csv << attributes
all.each do |student|
# use a variable to set the school_type string
school_type_text = if (student.school_type == 1)
"大学"
elsif (student.school_type == 2)
"大学院(修士)"
elsif (student.school_type == 3)
"大学院(博士)"
elsif (student.school_type == 4)
"短大"
elsif (student.school_type == 5)
"専門学校"
elsif (student.school_type == 6)
"高専"
end
csv << [student.id, student.name, student.sex, school_type_text]
end
end
我运行那个OpenStruct.new({school_type: 2, id: 1, name: 'test'})
(不在 Rails 中)并且输出是:
"id,status,email,temp_registration_date,full_name,full_name_kana,main_registration_date,email2,postal_code1,postal_code2,address1,address2,tel_main,tel_sub,sex,school_type,school_name,school_name_initial,department_name,faculty_type,graduation_month,industry_id,industry_most_id,occupation_id,occupation_most_id,desired_work_region_code,club_flg,school_club_name,school_club_type,club_name,lab_name,major_field,research_subject_title,research_subject_summary,interested_companies,personal_summary,how_known,how_known_other,mail_magazine_flg
\n1,test,something,大学院(修士)\n"
而不是每次都比较值你可以有一个散列
SCHOOL_TYPE = {1=>'大学', 2=>'大学院(修士)', 3=>'大学院(博士)', 4=>'短大', 5=>'専門学校', 6=>'高専'}
然后做这样的事情
CSV.generate(headers: true) do |csv|
csv << attributes
all.each do |student|
csv << [student.id, student.name, student.sex, SCHOOL_TYPE[student.school_type]]
end
end