我有一个多态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
中寻找部分审核。知道为什么会这样吗?
答案 0 :(得分:5)
如果要从部分模板路径中删除命名空间,可以在prefix_partial_path_with_controller_namespace
中设置config/application.rb
变量:
# config/application.rb
config.action_view.prefix_partial_path_with_controller_namespace = false
这将在您定义部分路径时加载部分路径(没有命名空间)。
答案 1 :(得分:0)
如果使用名称空间,则必须创建文件夹/子文件夹,以便Rails不会查看错误的位置。
如果你想强制使用部分路径:
render :partial => "review"
并创建review.html.erb
文件重命名为_review.html.erb