【Rails】CSV 내보내기 기능 구현
목표
개발 환경
· Ruby : 2.5.7
·Rails: 5.2.4
·Vagrant: 2.2.7
· VirtualBox : 6.1
· OS : macOS Catalina
전제
하기 실장 완료.
· Slim 도입
· Bootstrap3 도입
· 게시 기능 구현
구현
1. application.rb 편집
application.rbrequire_relative 'boot'
require 'rails/all'
require 'csv' # 追記
Bundler.require(*Rails.groups)
module Bookers2Debug
class Application < Rails::Application
config.load_defaults 5.2
end
end
2. 컨트롤러 편집
books_controller.rbdef index
@book = Book.new
@books = Book.all
# 追記
respond_to do |format|
format.html
format.csv do |csv|
send_users_csv(@books)
end
end
end
# 追記
def send_users_csv(books)
csv_data = CSV.generate do |csv|
header = %w(ID 登録日 投稿者 タイトル)
csv << header
books.each do |book|
values = [book.id, book.created_at, book.user.name, book.title]
csv << values
end
end
send_data(csv_data, filename: '本一覧情報')
end
① CSV 파일의 헤더를 설정한다.
header = %w(ID 登録日 投稿者 タイトル)
csv << header
② CSV 파일의 내용을 설정한다.
books.each do |book|
values = [book.id, book.created_at, book.user.name, book.title]
csv << values
end
③ CSV 파일명을 설정한다.
filename: '本一覧情報'
3. 뷰를 편집합니다.
books/index.html.slim/ 追記
= link_to 'CSVエクスポート', books_path(format: :csv), class: 'btn btn-success'
Reference
이 문제에 관하여(【Rails】CSV 내보내기 기능 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/matsubishi5/items/5ba4e086027d42bbb56f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
· Ruby : 2.5.7
·Rails: 5.2.4
·Vagrant: 2.2.7
· VirtualBox : 6.1
· OS : macOS Catalina
전제
하기 실장 완료.
· Slim 도입
· Bootstrap3 도입
· 게시 기능 구현
구현
1. application.rb 편집
application.rbrequire_relative 'boot'
require 'rails/all'
require 'csv' # 追記
Bundler.require(*Rails.groups)
module Bookers2Debug
class Application < Rails::Application
config.load_defaults 5.2
end
end
2. 컨트롤러 편집
books_controller.rbdef index
@book = Book.new
@books = Book.all
# 追記
respond_to do |format|
format.html
format.csv do |csv|
send_users_csv(@books)
end
end
end
# 追記
def send_users_csv(books)
csv_data = CSV.generate do |csv|
header = %w(ID 登録日 投稿者 タイトル)
csv << header
books.each do |book|
values = [book.id, book.created_at, book.user.name, book.title]
csv << values
end
end
send_data(csv_data, filename: '本一覧情報')
end
① CSV 파일의 헤더를 설정한다.
header = %w(ID 登録日 投稿者 タイトル)
csv << header
② CSV 파일의 내용을 설정한다.
books.each do |book|
values = [book.id, book.created_at, book.user.name, book.title]
csv << values
end
③ CSV 파일명을 설정한다.
filename: '本一覧情報'
3. 뷰를 편집합니다.
books/index.html.slim/ 追記
= link_to 'CSVエクスポート', books_path(format: :csv), class: 'btn btn-success'
Reference
이 문제에 관하여(【Rails】CSV 내보내기 기능 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/matsubishi5/items/5ba4e086027d42bbb56f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
1. application.rb 편집
application.rb
require_relative 'boot'
require 'rails/all'
require 'csv' # 追記
Bundler.require(*Rails.groups)
module Bookers2Debug
class Application < Rails::Application
config.load_defaults 5.2
end
end
2. 컨트롤러 편집
books_controller.rb
def index
@book = Book.new
@books = Book.all
# 追記
respond_to do |format|
format.html
format.csv do |csv|
send_users_csv(@books)
end
end
end
# 追記
def send_users_csv(books)
csv_data = CSV.generate do |csv|
header = %w(ID 登録日 投稿者 タイトル)
csv << header
books.each do |book|
values = [book.id, book.created_at, book.user.name, book.title]
csv << values
end
end
send_data(csv_data, filename: '本一覧情報')
end
① CSV 파일의 헤더를 설정한다.
header = %w(ID 登録日 投稿者 タイトル)
csv << header
② CSV 파일의 내용을 설정한다.
books.each do |book|
values = [book.id, book.created_at, book.user.name, book.title]
csv << values
end
③ CSV 파일명을 설정한다.
filename: '本一覧情報'
3. 뷰를 편집합니다.
books/index.html.slim
/ 追記
= link_to 'CSVエクスポート', books_path(format: :csv), class: 'btn btn-success'
Reference
이 문제에 관하여(【Rails】CSV 내보내기 기능 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/matsubishi5/items/5ba4e086027d42bbb56f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)