2

我还没有找到不涉及非常hacky的解决方案。

问题:我们的 rails 应用程序使用命名空间来覆盖父控制器和模型的行为(使用 STI)。在博客命名法中,它有点像这样:

blog
  posts

admin
  blog <- blog
    posts <- blog::posts
    orders <- blog::posts
namespace2
  blog <- blog
    posts <- blog::posts
    comments <- blog::posts
    awesome_comments <- blog::posts

这是一个更简单的示例,但是每个命名空间都覆盖了验证、行为以及它的子对象是什么 STI 对象。父级使用反射为用户提供与其拥有的子级对应的按钮。这需要使用 polymorphic_url,但是 rails 有一种非常有趣的方式来处理共享命名空间的嵌套资源

它喜欢这样:namespace/blog/:id/namespace/posts,我想它可以工作......如果你想要一个巨大的 url。

我试过了

scope :module => :namespace, :name_prefix => :namespace do
  resources :blog do
    resources :post
    resources :comment
  end
end

但是...... polymorphic_path 似乎没有得到这个......它想要:

namespace :namespace
  resources :blog do
    namespace :namespace
      resources :comment
      resources :post
    end
  end
end

这不仅不是 DRY,而且似乎我做错了什么。

是否有类似 polymorphic_url 的东西尊重范围?

4

0 回答 0