0

我正在开发一个涉及用户、项目和线程模型的 Rails 应用程序。用户可以创建或访问项目并创建有关该项目的线程。因此,用户可能会访问项目页面并从菜单中选择“创建线程”选项。我希望线程控制器的“新”和“显示”操作的视图显示在项目的“显示”视图中。

我在过去的三四天里才使用 Rails,所以我目前的解决方案效率很低。

我以这种方式为项目页面中的线程创建了指向“新”表单的链接:

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

项目的“显示”动作存储@newthread 值,在呈现项目页面时,它会检查是否设置了@newthread,如果是,则显示创建新线程的表单。

我可以通过这种方式创建新线程,但是当表单出现错误时,我不确定如何使用线程表单及其错误消息来呈现项目页面。

我该如何解决这个特定问题?或者,有没有更好的方法来组织这两个资源,以便线程控制器的视图始终显示在项目的“显示”视图中?

谢谢。

4

1 回答 1

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 %>

我希望它有帮助...

于 2012-05-26T23:25:30.023 回答