2012-01-31 67 views
2

我们的rails 3.1.0应用程序中有rfqs和quotes控制器。 Rfq有许多报价并引用belongs_to rfq。我们希望列出索引中的所有引号,并且不能使用嵌套资源(资源:rfqs do ...)。现在我们面临着将rfq id传递到new_quote_path的挑战。什么是正确的方式来实现这一目标?非常感谢。如何在rails 3.1.0中使用命名路径传递对象?

+0

你可以举一些你之后的路由结构的例子吗?为什么你不能使用嵌套资源?看起来像你之后的解决方案 – 2012-01-31 05:19:23

+0

如果使用嵌套资源,比如资源:rfq do resources:引用结束,那么index不能列出所有引号,只能引用特定rfq的引号。 – user938363 2012-01-31 16:01:56

回答

2

,你可以在routes.rb中你想要像这样

match "/rfqs/:id/quotes/:qoute_id" => 'rfq#show' 

则控制器添加路径链接到它从你的观点一样:

href="/rfqs/<%=rfq.id%>/quotes/<%=qoute.id%>" 

,并在控制器

处理它
if params[:id] && params[:qoute_id] 
    @rfq = RFQ.find(params[:id]) 
    @quote = Quote.find(params[:qoute_id]) 
end 

我会管理这不是最优雅的解决方案,但它工作得很好。

+0

+1。有些人似乎认为他们总是必须使用框架内置的任何东西,但是如果它不能以您想要的方式工作,那么“自己动手”或者只是做一些非常简单的事情并没有错“哑”。 – 2012-01-31 05:36:53

+0

是否有可能将rfq id传递给引用控制器,如下所示:new_quote_path(:rfqid => @ rfq.id)并使用params [:rfqid]检索引用控制器中的rfqid?谢谢。 – user938363 2012-01-31 16:33:54

+0

你有没有试过? – 2012-01-31 16:40:20

相关问题