, 나는 CSV 파일에 특정 레코드 집합을 통과 할 수있는 방법을 찾을 수 없습니다, 그래서 나는 ActiveAdmin을에 대한 사용자 정의 컨트롤러 방법을 쓰고, 그건 :
응용 프로그램/모델/user.rb :
scope :downloadables, -> { where(status: :downloadable) }
def self.to_csv
downloadable_users = User.downloadables
CSV.generate do |csv|
csv << column_names
downloadable_users.each do |user|
csv << user.attributes.values_at(*column_names)
end
end
end
응용 프로그램/관리/user.rb : 지금
collection_action :download_csv do
redirect_to action: :download_csv
end
한 CSV 파일의 기록을 다운로드 할 수있을 것이다 통해 인덱스 페이지의 링크를 가지고 :
는
첫째, 우리가 CSV 파일을 다운로드 할 것입니다 징수 조치를 생성 :
마지막으로
action_item only: :index do
link_to "Download CSV", download_csv_admin_users_path
end
그리고 실제로 모델의 메소드를 호출하는 제어 방법이 있고, 마법의 나머지해야 할 일 :
controller do
def download_csv
respond_to do |format|
format.html { send_data User.to_csv, filename: "users-#{Data.today}.csv" }
end
end
end
을
그리고 그게 전부입니다. 그것은 효과가있다.
정말 좋습니다. 하지만 다운로드 링크가'xml'과'json'으로 아래에 표시되고'csv' 다운로드 링크가 맨 위에 표시되기 때문에 좀 이상하게 보입니다. 페이지의 맨 아래에 다른 페이지로 표시하려면 어떻게해야합니까? 다른 기본 설정과 동일한 위치에 있음을 의미합니다. –
@AlexVentura 분명히,이 목적을 위해 사용자 정의 스타일을 사용할 수 있습니다. –
예이 링크를 기본 컨테이너와 동일한 컨테이너에 설정하는 방법은 알고 있지만 어떻게해야합니까? 'action_item'으로 메뉴 바에 나타납니다. 어떤 생각? –