0

project.identifier (:project_id ではない) に対応する redmine セットアップでは、別のサーバーにフォルダーがあり、開発者はプロジェクトに関連する 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 を見つけるときに、現在のプロジェクトの識別子を見つける非常に簡単な方法があるはずです。

4

1 に答える 1

0

私はそれを働かせました。ただの params[:project_id] でした。redmineの語彙にたどり着くのに時間がかかりました。限られた開発ドキュメントしか持っていません。

于 2013-01-03T20:09:41.680 に答える