【问题标题】:Exporting to CSV with a specified variable in "WHERE" clause在“WHERE”子句中使用指定变量导出到 CSV
【发布时间】:2012-10-03 11:45:20
【问题描述】:

我正在尝试创建一个链接列表,其中包含链接中的供应商名称,并使用该供应商名称导出数据。我知道我现在在模型中输入的内容是错误的,我只是不确定如何正确传递供应商.. 抱歉,如果这含糊不清,这是我到目前为止的代码:

控制器

def export_supplier    
@software = Software.find_supplier
software = CSV.generate do |csv|

# for the headers of the csv file
  csv << ["Quantity", "Item Number", "Item Description"]
  # the chosen rows from the database
  @software.each do |s|
    csv << [s.amount, s.productcode, s.description]
  end
end
send_data(software, :type => 'text/csv', :filename => 'software.csv')
end

查看

<% @softwares.each do |l| %>
<li>
    <%= link_to "#{l.supplier}", :controller =>'softwares', :action => 'export_supplier'%>
</li>
<% end %>

型号

def self.find_supplier
find_by_sql("SELECT s.productcode, s.description, CAST(SUM(l.amount) as UNSIGNED) AS amount
FROM softwares s
LEFT JOIN licenses l ON s.id=l.software_id
WHERE s.supplier = #{l.supplier} AND l.amount > 0
GROUP BY s.supplier, s.vendor, s.title, s.edition")
end

【问题讨论】:

  • 检查您的代码您正在迭代软件而不是供应商,您可能想为个别软件供应商获取?你真正想要什么
  • 不,我希望它迭代软件表中的供应商,它会这样做

标签: ruby-on-rails where-clause export-to-csv


【解决方案1】:

&lt;%= link_to "#{l.supplier}", :controller =&gt;'softwares', :action =&gt; 'export_supplier',:supplierid=&gt;l.supplier.id%&gt;

如果路由是成员路由

&lt;%= link_to "#{l.supplier}", export_supplier_software_path(software,:supplier_id=&gt;l.supplier.id%&gt;)

如果路线是收集路线

&lt;%= link_to "#{l.supplier}", export_supplier_softwares_path(:supplier_id=&gt;l.supplier.id%&gt;)

【讨论】:

  • 没有供应商id,供应商只是软件表中的一个字段..
猜你喜欢
  • 2011-02-06
  • 2016-05-18
  • 2020-04-16
  • 1970-01-01
  • 1970-01-01
  • 2013-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多