我正在尝试找到一个最佳实践,允许用户通过在提交帖子时将它们写入文本字段来定义他们在 Rails 中页面的路由,就像 Drupal 中的 Path 模块一样(是的,我们正在将 Drupal 站点移植到导轨)
所以,我需要
- 在提交文章时定义一个新的命名路由(例如http://www.domain.com/a-day-in-annas-life)
- 更改文章编辑时的现有路线,如果他们定义了新路线,则通过从旧路线到新路线的 301 重定向
我怎样才能最好地做到这一点?
我正在尝试找到一个最佳实践,允许用户通过在提交帖子时将它们写入文本字段来定义他们在 Rails 中页面的路由,就像 Drupal 中的 Path 模块一样(是的,我们正在将 Drupal 站点移植到导轨)
所以,我需要
我怎样才能最好地做到这一点?
好的,我找到了一种方法,但是否是最佳实践,我不能说。
我正在使用这样的自定义限制器:
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
当我为每个应该能够响应永久链接的模型/控制器对创建这样的块时,我可以让它们都有机会对永久链接采取行动。但是,这也意味着它们都被串联调用,这不一定是理想的。