我正在关注railscast(http://railscasts.com/episodes/220-pdfkit)的教程,并在尝试实现PDF链接时遇到困难。原始代码是:
<p id="pdf_link"><%= link_to "Download Invoice (PDF)", order_path(@order, :format => "pdf") %></p>
然而我正在使用haml,所以我按如下方式编辑了这行:
= link_to 'Download PDF', order_path(@order, :format => "pdf")
我已经意识到order_path与routes.rb中指定的路由有关。问题是我的应用程序没有路径文件夹(从另一个开发人员继承了该应用程序)。因此,我将如何在haml代码中创建此路径。
我也想知道更换@order。在查看代码时,我注意到它被声明为这样。有人可以解释这段代码声明的顺序是什么吗?
@order = Order.find(params[:id])
答案 0 :(得分:2)
Rails中的路由在config/routes.rb
文件中声明。看看this guide了解更多信息。
order_path
是rails声明路由时为您提供的帮助方法。您可以通过在应用程序根文件夹中运行rake routes
命令来查看这些路由别名。
关于这一行:
@order = Order.find(params[:id])
这将尝试使用请求参数中传递的id从数据库中获取Order
。有关详细信息,请参阅this guide。
我的建议,请阅读整个Rails Guide,以便了解您在处理什么。