如何在rails 2中设置路由,以便将root后的字符串作为参数传递?

时间:2011-04-20 23:34:56

标签: ruby-on-rails routes

我想按照以下方式设置我的路线:

   subdomain.mydomain.com/VAR

我希望VAR成为一个变量,如果子域作为记录中的值存在,则会传递该变量。换句话说,该show动作的控制器将能够获取params [:id]作为值“VAR”

1 个答案:

答案 0 :(得分:0)

我不确定你到底需要什么。但是从你看来你正试图获得一个基于子域的记录,并根据发现的记录,你想进一步处理作为VAR传递的值。

一条简单的路线就像:

map.posts_with_slug    "/:slug", :controller => "posts", :action => "show"

子域的处理需要单独完成:

class ApplicationController
  before_filter :ensure_domain

  APP_DOMAIN = 'myapp.mydomain.com'

  def ensure_domain
    if request.env['HTTP_HOST'] != APP_DOMAIN
      # HTTP 301 is a "permanent" redirect
      redirect_to "http://#{APP_DOMAIN}", :status => 301
    end
  end
end

Heroku Docs用于处理自定义域的源代码示例。

http://devcenter.heroku.com/articles/custom-domains

希望这有帮助。