使用project.identifier作为redmine中的变量

时间:2012-12-31 11:10:01

标签: ruby-on-rails ruby plugins redmine

在我们的redmine设置中,对应于project.identifier(不是:project_id),我们在另一台服务器中有文件夹,开发人员存储与其项目相关的mysql数据库转储。我正在尝试编写一个插件,它只显示所有数据库转储的列表。

最初我尝试使用net / ssh然后插件登录到db转储所在的另一个服务器并执行ls。我在插件视图的无序列表中显示ls输出。为此,我应该将project.identifier作为参数发送给ls,以获取特定于该项目的转储列表。无法弄清楚如何通过Net :: SSH发送局部变量。

然后我改变了使用net / ssh的想法,现在简单地执行一个执行ssh和ls的本地脚本。现在我想再次使用project.identifier作为参数。如何将project.identifier的值作为参数传递给系统调用中的命令?

这是我的控制器。

require 'rubygems'
require 'net/ssh'

class BackupsController < ApplicationController
  helper :projects
  unloadable


  def index
  #host = '192.168.122.245'
  #user = 'root'
  #Net::SSH.start( host, user ) do |ssh|
  #@result = ssh.exec!('dumplist website')
  #end
  @identifier = "#{project.identifier}"
  @result = %x[dumpshow @identifier]
  end
end

dumpshow是我的脚本,它执行ssh运行ls $1。我想将project.identifier作为$ 1

发送

使用上面的脚本我收到以下错误。 NameError (undefined local variable or method 'project' for #<BackupsController:0x7ff5b4a756a0>):

总而言之,我想使用Redmine的核心控制器和模型中的变量。这似乎很简单,但我在某处遗漏了它。或者,当我们找到USer.Current时,应该有一种非常简单的方法来查找当前项目的标识符。

1 个答案:

答案 0 :(得分:0)

我得到了它的工作。它只是params [:project_id]。花时间让我学习redmine的词汇。我觉得有限制的开发文档。