【发布时间】:2014-05-15 04:39:43
【问题描述】:
我有一个html页面,我想实现插件的在线工作。目前,用户必须执行 4 个步骤才能获取报告。我想创建一个可以在线执行这些步骤的按钮。在这一步 - 在 TaskJuggler 中计算。我在电脑上安装了程序。而对于计算,我需要执行命令:tj3 'file name'。
Redmine 插件,我使用 Ruby on Rails。
我使用的代码
<h2><%= l(:redmine_taskjuggler)%></h2>
<%= l(:project)%> : <%= @project %> - <%= @project.identifier %>
<p>
<%= submit_tag "Compute in TJ", :type => 'button', :onclick => "javascript:tj3_com()" %>
</p>
<textarea id='placeForText' cols='70' rows='7' disabled></textarea>
<script type="text/javascript">
function tj3_com(){
<% name = "#{@project.identifier.gsub(/-/,'_')}" + '-' + "#{@project.tj_version.to_s.gsub(/\./,'_')}" + '-' +'20140331_145001' + '.tjp' %>
<% outp = `tj3 /home/kitsune/proj/pred-0_0_1-20140331_145001.tjp` %>
document.getElementById('placeForText').innerHTML=document.getElementById('some_doing').innerHTML
}
</script>
<script type="text/template" id="some_doing">
<%= outp %>
</script>
而且它不起作用。但是如果我使用
<% outp = `ls -l /home/kitsune/` %>
一切正常。
但是如果我想使用
<% `ls -l /home/kitsune/ > check.txt` %>
它不工作,文件“check.txt”没有创建。但是如果我在 irb 中使用所有这些命令(tj3,ls -l),它就可以工作了。
我不知道如何解决这个问题。谁能帮帮我?!
【问题讨论】:
-
你尝试过使用系统方法吗?
-
是的。它返回“假”。
-
如果我尝试使用 system('tj3 /home/kitsune/proj/pred-0_0_1-20140331_145001.tjp > check.txt') 文件未创建
-
ls -l /home/kitsune/ > check.txt 2> error.txt看看写 check.txt 时的实际错误是什么 -
error.txt 未创建。而这个问题就解决了。但是 tj3 的问题没有解决。
标签: javascript html ruby-on-rails ruby command