将 rails 变量传递给 .Rmd 文件以呈现 R markdown
Passing rails variables to .Rmd files for rendering R markdown
我正在使用 rails 呈现 R markdown 文件以生成报告。我有来自 Controller 的实例变量。
.rmd 文件位于 views 文件夹中。我在下面调用控制器
File.read('path/to/file_name')
读取.Rmd 文件。以下是无法正常工作的 .Rmd 文件片段。
---
title: "Result Report"
params:
selected_id: <%= "#{@result_id}" %>
selected_gene: <%= "#{@gene}" %>
selected_experiment: <%= "#{@experiment.id}" %>
想知道如何实现它。卡在这里一段时间。欢迎任何想法。谢谢
我猜你想在浏览器中生成报告,因为你提到了控制器。
假设您现在要查看的 URL 实验是
/experiments/32/show
你可以使用这样的扩展
/experiments/32/show.report
查看生成的报告
要做到这一点,您需要三件事
- 更换控制器
# app/controllers/experiments_controller.rb
class ExperimentsController < ApplicationController
def show
@experiment = Experiment.find(params[:id])
@gene = ...
@result_id = ...
respond_to do |format|
format.html
format.report
end
end
end
- 注册
report
MIME 类型
按照指示in the rails guides
您需要在初始化程序中添加一行mime_types.rb
(如果没有则创建一个空文件)
# config/initializers/mime_types.rb
Mime::Type.register "application/rtf", :report
- 使用 ERB 创建 .report 模板
# app/views/experiments/show.report.erb
---
title: "Result Report"
params:
selected_id: <%= @result_id %>
selected_gene: <%= @gene %>
selected_experiment: <%= @experiment.id %>
我找到了一个简单的解决方案。你必须先阅读文件,然后你可以使用 gsub 来替换你想要的内容。
rmd_file = File.read("path/to/rmdFile")
rmd_file.gsub!('print_selected_gene', "\"#{@gene}\"")
这样你就可以随意替换文件了。
我正在使用 rails 呈现 R markdown 文件以生成报告。我有来自 Controller 的实例变量。
.rmd 文件位于 views 文件夹中。我在下面调用控制器
File.read('path/to/file_name')
读取.Rmd 文件。以下是无法正常工作的 .Rmd 文件片段。
---
title: "Result Report"
params:
selected_id: <%= "#{@result_id}" %>
selected_gene: <%= "#{@gene}" %>
selected_experiment: <%= "#{@experiment.id}" %>
想知道如何实现它。卡在这里一段时间。欢迎任何想法。谢谢
我猜你想在浏览器中生成报告,因为你提到了控制器。
假设您现在要查看的 URL 实验是
/experiments/32/show
你可以使用这样的扩展
/experiments/32/show.report
查看生成的报告
要做到这一点,您需要三件事
- 更换控制器
# app/controllers/experiments_controller.rb
class ExperimentsController < ApplicationController
def show
@experiment = Experiment.find(params[:id])
@gene = ...
@result_id = ...
respond_to do |format|
format.html
format.report
end
end
end
- 注册
report
MIME 类型
按照指示in the rails guides
您需要在初始化程序中添加一行mime_types.rb
(如果没有则创建一个空文件)
# config/initializers/mime_types.rb
Mime::Type.register "application/rtf", :report
- 使用 ERB 创建 .report 模板
# app/views/experiments/show.report.erb
---
title: "Result Report"
params:
selected_id: <%= @result_id %>
selected_gene: <%= @gene %>
selected_experiment: <%= @experiment.id %>
我找到了一个简单的解决方案。你必须先阅读文件,然后你可以使用 gsub 来替换你想要的内容。
rmd_file = File.read("path/to/rmdFile")
rmd_file.gsub!('print_selected_gene', "\"#{@gene}\"")
这样你就可以随意替换文件了。