1

我正在尝试找到一个最佳实践,允许用户通过在提交帖子时将它们写入文本字段来定义他们在 Rails 中页面的路由,就像 Drupal 中的 Path 模块一样(是的,我们正在将 Drupal 站点移植到导轨)

所以,我需要

  • 在提交文章时定义一个新的命名路由(例如http://www.domain.com/a-day-in-annas-life
  • 更改文章编辑时的现有路线,如果他们定义了新路线,则通过从旧路线到新路线的 301 重定向

我怎样才能最好地做到这一点?

4

1 回答 1

0

好的,我找到了一种方法,但是否是最佳实践,我不能说。

我正在使用这样的自定义限制器:

  class CharitiesRestrictor
    def self.matches?(request)
      slug = request.path_parameters[:path]
      !Charity.find_by_name(slug).nil?
    end
  end

  constraints CharitiesRestrictor do
    match  '*path' => 'charities#show_by_slug', :constraints => CharitiesRestrictor.new
  end

当我为每个应该能够响应永久链接的模型/控制器对创建这样的块时,我可以让它们都有机会对永久链接采取行动。但是,这也意味着它们都被串联调用,这不一定是理想的。

于 2011-07-08T06:51:07.060 回答