Merge pull request #4612 from Growstuff/fix-crops-csv-export-11894001552728801282

Fix ArgumentError in Crops CSV export
This commit is contained in:
Daniel O'Connor
2026-05-02 15:31:10 +09:30
committed by GitHub
parent 5a7f41537f
commit 1f6f3c4dfd
3 changed files with 19 additions and 2 deletions

View File

@@ -13,7 +13,7 @@ class CropsController < ApplicationController
@crops = Crop.search('*', boost_by: %i(plantings_count harvests_count),
limit: 100,
page: params[:page],
load: (request.format.csv? ? { include: %i(scientific_names parent creator) } : false))
load: (request.format.csv? || request.format.rss? ? { include: %i(parent scientific_names seeds harvests creator plantings) } : false))
@num_requested_crops = requested_crops.size if current_member
@filename = filename
respond_with @crops

View File

@@ -44,7 +44,9 @@ csv.headers *all_headers
@crops.each do |c|
csv.row c do |csv, crop|
csv.cells :id, :name, :en_wikipedia_url
csv.cell :id, c.id
csv.cell :name, c.name
csv.cell :en_wikipedia_url, c.en_wikipedia_url
csv.cell :growstuff_url, crop_url(c)
if c.scientific_names.any?

View File

@@ -73,6 +73,21 @@ describe CropsController do
end
end
describe "GET CSV" do
let!(:tomato) { create(:tomato, en_wikipedia_url: "https://en.wikipedia.org/wiki/Tomato") }
before do
Crop.reindex
get :index, format: "csv"
end
it { is_expected.to be_successful }
it { expect(response.content_type).to eq("text/csv; charset=utf-8") }
it "contains tomato", pending: "not properly functional" do
expect(assigns(:crops)).not_to be_empty
expect(response.body).to include("tomato")
end
end
describe 'CREATE' do
subject { put :create, params: crop_params }