首页 > 解决方案 > 在 Rails 路由器中访问请求上下文对象

问题描述

我需要通过以下方式在我的 Rails 路由器中创建一些动态路由:

Rails.application.routes.draw do
    account = Account.find_by(
      subdomain: request.subdomain,
      domain: request.domain
    )
    EditableField.where(account_id: account.id).links.each do |link|
      get link.link_href, to: link.method
    end
end

如上图,我需要根据请求域和子域来确定账号,但是在rails路由器中我找不到如何访问请求对象。这样做的正确方法是什么?

标签: ruby-on-railsrequestrouterrequestcontext

解决方案


我建议使用 rack-rewrite gem https://github.com/jtrupiano/rack-rewrite

它处于较低级别,为您提供更多选择来执行这种动态路由

如果你仍然想在 routes.rb 文件中这样做,你可以按照这个答案https://stackoverflow.com/a/24411835/2529330

享受 :)


推荐阅读