2012-01-31 65 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

相關問題