Rails:渲染模板寻找错误的局部视图

3

我有一个TasksController和一个SubtasksController。在SubtasksController的某个操作中,我想要:

# app/controllers/tasks_controllers.rb
render 'tasks/index' # Or: render template: 'tasks/index'

当在视图中调用该操作时,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"

我真的不明白这里发生了什么事情,你有什么想法吗?


尝试使用 render '/tasks/index',这有帮助吗? - Bjoernsen
我已经尝试过了:(,结果一样。@Bjoernsen - Heartcroft
请查看此链接:https://dev59.com/IG025IYBdhLWcg3wW0yx 问题。 - Thaha kp
你的 partial 位于哪里? - zeantsoi
1个回答

7

当你呈现另一个控制器的操作时,显示的页面将在调用控制器的视图中查找其内部的任何部分。

您可以通过明确声明页面内部的部分路径来避免这种情况,这样即使从另一个控制器调用,它也总是会在正确的位置查找。

# tasks/index page 
<%= render 'tasks/some_partial' %>

现在无论哪个控制器渲染此页面,它都会在tasks中查找其局部视图。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接