ruby-on-rails - 下载 CSV 会下载所有文件,需要它来下载特定文件
问题描述
我在将值下载到 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
模型中的解决方案更好?
如果有人对此有任何想法并能够帮助我,我将不胜感激!
解决方案
不应该是:
@download_properties = Property.where(downtown: params[:id])
或者
@download_properties = Downtown.find(params[:id]).properties
推荐阅读
- excel - 根据日期删除多行
- jquery - JQuery 向下滑动警报消息禁用提交按钮
- c# - 必应地图 REST 服务工具包 - 访问代表之外的价值
- c# - 如何使用标准 C#.NET 发送带有“apns-expiration”标头的推送通知?
- python - 检测到字时启动功能命令
- vba - VBA 帮助 - 运行时错误 5:无效的过程调用或参数,仅在首次运行时
- html - 为什么表格行中的图像不会在 ios 邮件上并排呈现?
- java - 为什么用 stringbuilder 连接字符串需要更长的时间?
- laravel - push 和 endpush 到 Stack laravel 问题
- laravel - How in Laravel filter by relationship?