我正在研究涉及用户,项目和线程模型的Rails应用程序。用户可以创建或访问项目并创建有关该项目的线程。因此,用户可以访问项目页面并从菜单中选择“创建线程”选项。我希望Threads控制器的'new'和'show'操作的视图显示在项目的'show'视图中。
过去三四天我一直在使用Rails,所以我目前的解决方案效率很低。
我以这种方式为项目页面中的Thread创建了一个指向'new'表单的链接:
<%= link_to "Create Thread", {controller: 'projects', action: 'show',
newthread: true} %>
项目的“show”操作存储@newthread值,当呈现项目页面时,它会检查是否已设置@newthread,如果已设置,则显示表单以创建新线程。
我可以用这种方式创建新线程,但是当表单中有错误时,我不确定如何使用线程表单及其错误消息呈现项目页面。
我该如何解决这个特殊问题?或者,是否有更好的方法来组织这两个资源,以便Thread控制器的视图始终显示在项目的“show”视图中?
感谢。
答案 0 :(得分:0)
我认为在这种情况下最好的选择是使用嵌套路由。
看看这里:http://guides.rubyonrails.org/routing.html#nested-resources
您可以使用项目的show视图,使用简单的循环显示与其相关的线程。
例如:
项目管理员:
def show
@project = Project.find(params[:id])
@threads = @project.threads.all
end
显示视图:
<% @threads.each do |thread| %>
...
<% end %>
我希望它有所帮助...