2012-05-26 181 views
0

我正在研究一個涉及用戶,項目和線程模型的Rails應用程序。用戶可以創建或訪問項目並創建關於該項目的線程。因此,用戶可能會訪問項目頁面並從菜單中選擇「創建線程」選項。我希望線程控制器的「新」和「顯示」操作的視圖顯示在項目的「顯示」視圖中。Rails 3,在另一個視圖中創建一個控制器的視圖

我在過去的三四天裏一直只使用Rails,所以我現在的解決方案真的很低效。

我以這種方式在項目中創建頁面的鏈接,以「新」形式的主題:

<%= link_to "Create Thread", {controller: 'projects', action: 'show', 
newthread: true} %> 

該項目的「秀」動作存儲@newthread值,當項目頁面呈現,它檢查是否已設置@ newthread,如果是,則顯示錶單以創建新線程。

我可以用這種方式創建新線程,但是當窗體出現錯誤時,我不確定如何使用線程窗體和錯誤消息呈現項目頁面。

我該如何解決這個特殊問題?或者,是否有更好的方式來組織這兩個資源,以便線程控制器的視圖始終顯示在項目的「顯示」視圖中?

謝謝。

回答

0

我認爲在這種情況下最好的選擇是使用嵌套路由。

看看這裏:http://guides.rubyonrails.org/routing.html#nested-resources

您可以使用該項目的展示視圖中顯示與之相關的線程,使用一個簡單的循環。

例如:

項目負責人:

def show 
    @project = Project.find(params[:id]) 
    @threads = @project.threads.all 
end 

顯示視圖:

<% @threads.each do |thread| %> 
... 
<% end %> 

我希望它可以幫助...

相關問題