有一个关于rails的真正基本问题 - 花费在网络上查找解决方案的小时数 - 但找不到解决方案。Rails - 研究如何通过链接访问控制器的方法
我只需要调用一个链接点击的方法。
这个想法是我需要导出一个由控制器中的方法生成的xml文件。
firms_controller.rb(exerpt)
.....def xml
@entries = Entry.find(:all)
send_data @entries.to_xml,
:type => 'text/xml; charset=UTF-8;',
:disposition => "attachment; filename=entries.xml"
end....
我只是需要从公司查看页面以获取XML文件下载到调用此方法,但不能设法得到它的工作。 XML代码确实有效 - 如果我将它添加到控制器中的索引方法中,它的工作原理完美无瑕。
这是我在阅读一些在线文章后试图使链接工作的一些方法。
<% url = url_for({:action => "xml", :controller => 'firms'}.merge(params)) %>
<%= link_to "XML", url %>
最基本的方法试图
<%= link_to "XML", :action => 'xml' %>
在我看来喜欢的事,应该是很简单的 - 但不能让它开始工作。
我得到的错误:在firms_controller
def show
@firm = Firm.find(params[:id])
end
ActiveRecord::RecordNotFound in FirmsController#show
Couldn't find Firm with ID=xml
Rails.root: /home/james/rails/KPSmart
Application Trace | Framework Trace | Full Trace
app/controllers/firms_controller.rb:25:in `show'
show方法试图与路线搞乱得到它与无济于事工作。
感谢您的帮助
想你的建议链接这一点 - 但得到了同样的错误(但是url改为:http:// localhost:3000/firm/xml?id = 1)。我不需要通过任何参数的方法 - 因为我需要它返回所有的“公司”。有没有更简单的方法来做到这一点,你会推荐什么路线? – jmc