2012-05-26 137 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 %> 

我希望它可以帮助...

相关问题