2012-12-31 19 views
0

在我們的redmine設置中,對應於project.identifier(而不是project_id),我們在另一個服務器中存在文件夾,開發人員存儲與其項目相關的mysql數據庫轉儲。我正在嘗試編寫一個只顯示所有數據庫轉儲列表的插件。在redmine中使用project.identifier作爲變量

爲此,我嘗試使用net/ssh,然後插件登錄到數據庫轉儲所在的另一臺服務器並執行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時,應該有一種非常簡單的方法來查找當前項目的標識符。

+0

再次以簡單的方式說明,如何在我的自定義插件中使用redmine核心控制器和模型中設置的變量? – Medhamsh

回答

0

我明白了。這只是params [:project_id]。花了時間讓我瞭解redmine的詞彙。我感覺有限的開發文檔。