我最近开始使用rails,现在我需要一些帮助来理解如何在一个视图控制器中组合不同的视图。在我的测试页面中,我有以下部分:
现在我想要一个仪表板,用户可以在其中查看有关他创建的模型的更多详细信息。还应该可以编辑或删除他创建的模型。 但在这里,我遇到了问题。
我为仪表板创建了一个控制器。在那里,我有索引视图,我为modelA和modelB渲染部分。 <%= render @modelA %>
并在信息中心的导航中,我有一个详细的show_modelA.html.erb链接,我使用<%= render :partial => "modelA/modelA_detailed", :collection => @modelA_detailed %>
进行渲染。
正如您所见,部分仍然在modelA的视图中。
但哪种方式最好?现在我遇到了显示modelA编辑表单的问题,因为我不知道如何将它们从视图连接到仪表板控制器。在modelA的partial中,我创建了用于编辑条目<%= link_to "edit", edit_modelA_path(modelA.id) %>
如果我现在想要从仪表板上执行这些操作,我必须将路径更改为仪表板路径?或者从modelA输入edit.html.erb导航栏(共享/导航栏)从仪表板?
或者filling the layout中的另一种方法,应用程序控制器使用yield来插入每个页面的内容?
我希望能够理解我想要做的事情。如果有人有一些建议,请随时回答。
谢谢。
//编辑 我想我得到了解决方案。如果有人知道要改进或改变的话,那就太好了。
现在我的app文件夹中有以下结构:
仪表板内的控制器继承自其控制器文件夹中的控制器。编辑和删除的所有逻辑都在这些仪表板控制器中移动。 app / views文件夹与控制器文件夹具有相同的结构。用于编辑和删除的所有html.erb文件都移动到特定文件夹内的仪表板文件夹中。 我认为这是一个很好的方法/解决方案。没有重复使用的代码。 在routes.rb文件中,我不得不添加一些路由:
namespace :dashboards do
resources :users
resources :modelAs
resources :modelBs
end