5

我有一个多态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. 知道为什么会这样吗?

4

2 回答 2

5

如果你想从部分模板路径中删除命名空间,你可以prefix_partial_path_with_controller_namespace在你的config/application.rb

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

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

你可以在这里看到原始的拉取请求

于 2016-10-25T12:36:46.367 回答
0

如果您使用名称空间,您必须创建文件夹/子文件夹,这样 Rails 才不会找错地方。

如果要强制使用部分路径,请使用:

render :partial => "review"

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

于 2013-04-08T17:45:39.947 回答