可以在Rails应用程序的routes文件中进行重定向吗?

具体来说,我想转发/j/e/javascripts/embed.js

现在我唯一能想到的方法就是创建一个j控制器,用e方法重定向到它.

推荐答案

假设rails版本早于3.

您可以创建一个新的RedirectController或在现有控制器中插入一个函数,以执行以下操作:

map.js_embed '/j/e',
    :controller => :redirect_controller,
    :action => :some_function,
    :path => "embed"

那么您的函数将执行以下操作:

def some_function
  if params[:path]
    redirect_to "/javascripts/#{params[:path]}.js"
  end
end

或者类似的东西.

Ruby-on-rails相关问答推荐

如何在_serialize之前执行代码?""或者如何在序列化属性之前对属性进行清理?

HTTP:MimeNegotiation::InvalidType(html不是有效的MIME类型):""

微软安全链接在页面加载前解锁用户

ArgumentError 用于 Ruby on Rails 中非常简单的初始化方法,没有参数

错误 NoMethodError:ActionView::Base:Class 的未定义方法 `debug_rjs='

验证模型属性大于另一个

Rails 3 的data-method='delete'如何优雅地降级?

在 Rails 中找不到关联问题

Rails ActiveRecord 查询日期范围

在 Epoch 中将 Ruby 时间戳转换为秒数并返回

在公共 Rails 应用程序中将敏感数据存储在哪里?

Rails:仅当值存在时如何验证格式?

升级到 ruby​​ 1.9.2 后奇怪的无法要求配置/ bootstrap

如何禁用 HTTP 严格传输安全性?

link_to 将参数与 url 一起发送并在目标页面上抓取它们

加载常量时自动加载常量时检测到循环依赖

您将 Rack 中间件文件和要求放在哪里?

Rails:弃用警告:您没有设置 config.secret_key_base

ActionMailer 在开发 Rails 4 中不发送邮件

如何从 ApplicationHelper 调用 ApplicationController 方法