可以在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相关问答推荐

Rails 7:加载所有刺激控制器

您的Bundle 包被锁定为 mimemagic (0.3.5),但在 Gemfile 中列出的任何源中都找不到该版本

Rails 6.1、Ruby 3.0.0:测试错误,因为它们无法加载 rexml

如何运行单个 RSpec 测试?

%i 或 %I 在 Ruby 中做什么?

安装mysql2(0.4.8)时出错,Bundler无法继续

Gemfile 中新块“git_source(:github)”的含义

Rails: Sprockets::Rails::Helper::AssetNotPrecompiled 在开发中

未捕获的 ReferenceError:未定义 React

ActiveRecord::StatementInvalid: PG InFailedSqlTransaction

“分配分支条件大小太高”是什么意思以及如何解决?

Sidekiq Rails 4.2 使用 Active Job 还是 Worker?有什么不同

部署后如何重启 puma?

RSpec:期望更改多个

ActiveRecord where field = ?可能值的数组

参数错误:范围主体需要可调用

Bundler::GemNotFound:在任何源中都找不到 rake-10.3.2

如何解决错误“‘生产’环境缺少‘secret_key_base’”(Rails 4.1)

不规则的 bootstrap 列包装

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