Rails正在寻找错误目录中的部分内容

时间:2013-04-08 17:21:13

标签: ruby-on-rails namespaces partials

我有一个多态Review模型。命名空间模型User::Library::Publication是可审核的。评论是正确创建的,但是当我尝试通过部分显示时,Rails会查找错误的目录。

在我看来:

<%= render @review %>

我收到此错误:

Missing partial user/library/reviews/review with {:locale=>[:en], :formats=>[:js, :html], :handlers=>[:erb, :builder]}

Rails显然在命名空间的目录views/user/library而不是/views/reviews中寻找部分审核。知道为什么会这样吗?

2 个答案:

答案 0 :(得分:5)

如果要从部分模板路径中删除命名空间,可以在prefix_partial_path_with_controller_namespace中设置config/application.rb变量:

# config/application.rb
config.action_view.prefix_partial_path_with_controller_namespace = false

这将在您定义部分路径时加载部分路径(没有命名空间)。

你可以see the original Pull Request here

答案 1 :(得分:0)

如果使用名称空间,则必须创建文件夹/子文件夹,以便Rails不会查看错误的位置。

如果你想强制使用部分路径:

render :partial => "review"

并创建review.html.erb文件重命名为_review.html.erb