При загрузке CSV загружаются все файлы, для загрузки необходимо указать указанные c - PullRequest
0 голосов
/ 03 марта 2020

У меня небольшие проблемы с загрузкой значений в файл CSV. У меня есть две модели, даунтаун и свойства. Даунтаунс имеет много свойств. У свойств каждого есть один центр города. У меня проблема в том, что с тем, что я сделал, я смог загрузить все свойства, и это круто! Но я борюсь с тем, чтобы загружать только объекты, принадлежащие центру города.

К тому, что я изначально должен загрузить все свойства, которые у меня есть

В моем контроллере свойств:

  def index
    @properties = Property.all

    respond_to do |format|
      format.html
      format.csv { send_data @properties.to_csv }
    end
  end

В моей модели свойств

  def self.to_csv
    attributes = %w(id name owner_first_name created_at)
    CSV.generate(headers: true) do |csv|
      csv << attributes

      all.each do |property|
        csv << property.attributes.values_at(*attributes)
      end
    end
  end

и затем, на мой взгляд, у меня есть.

= link_to "download CSV", downtown_properties_path(:format => :csv), class: "button"  

Итак, снова это работает, но из-за моих ассоциаций представление, где я могу добавить свою ссылку, может быть только в downtowns/1/properties, который основан на моем вводе кода в index это на самом деле имеет смысл

Я пробовал что-то вроде

@download_properties = Property.where(downtown: @downtown_id)

respond_to do |format|
  format.html
  format.csv { send_data @download_properties.to_csv }
end

Однако @downtown_id не определено на этом этапе. Так что я думаю, что решение лучше в модели downtown?

Если у кого-нибудь есть идеи, которые просматривают это и могут помочь мне, я был бы очень признателен!

1 Ответ

0 голосов
/ 03 марта 2020

не должно быть:

@download_properties = Property.where(downtown: params[:id])

или

@download_properties = Downtown.find(params[:id]).properties
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...