在我們的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時,應該有一種非常簡單的方法來查找當前項目的標識符。
再次以簡單的方式說明,如何在我的自定義插件中使用redmine核心控制器和模型中設置的變量? – Medhamsh