我有一个 TasksController 和一个 SubtasksController。在来自 SubtasksController 的 Action 的给定时刻,我想:
# app/controllers/tasks_controllers.rb
render 'tasks/index' # Or: render template: 'tasks/index'
但是,当从 View 中调用该操作时,rails 似乎正在尝试呈现错误的部分:
ActionView::Template::Error (Missing partial subtasks/tasks, private_area/tasks, application/tasks with {:locale=>[:ca, :es], :formats=>[:js, :html], :handlers=>[:erb, :builder, :slim, :jbuilder, :coffee, :haml]}. Searched in:
* "/Users/****/app/views"
我真的不明白这里发生了什么,有什么想法吗?
最佳答案
当您呈现另一个 Controller 操作时,显示的页面将在调用 Controller View 中查找其内部的任何部分。
您可以通过在页面内显式声明部分的路径来解决这个问题,这样即使从另一个 Controller 调用它也将始终位于正确的位置。
# tasks/index page
<%= render 'tasks/some_partial' %>
现在无论哪个 Controller 渲染这个页面,它总是会在
tasks
中查找它的部分。关于ruby-on-rails - Rails : render template looking for the wrong partial,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17082615/