Redmine-Ruby-查找自定义字段的值

Redmine-Ruby-查找自定义字段的值,ruby,redmine,ruby-on-rails,Ruby,Redmine,Ruby On Rails,我检查了IRC中的redmine,无法获得帮助。 我在天气问题上遇到了矛盾,无法将此应用于超级用户、服务器故障或此处,但由于我的问题是面向技术编程的,所以我决定在此处寻求帮助 我们有一个Mercurial存储库系统,其布局基于满足我们需求的项目。我编写了一些shell脚本,它们可以很好地管理存储库,并将它们放在正确的位置等。我正在尝试调用这些脚本,并从Redmine向它们传递参数。我正在编辑app/controllers/projects\u controller.rb(第75行->第87行)

我检查了IRC中的redmine,无法获得帮助。 我在天气问题上遇到了矛盾,无法将此应用于超级用户、服务器故障或此处,但由于我的问题是面向技术编程的,所以我决定在此处寻求帮助

我们有一个Mercurial存储库系统,其布局基于满足我们需求的项目。我编写了一些shell脚本,它们可以很好地管理存储库,并将它们放在正确的位置等。我正在尝试调用这些脚本,并从Redmine向它们传递参数。我正在编辑app/controllers/projects\u controller.rb(第75行->第87行)

我已经设法提取了项目参数和当前用户,但是我添加了两个自定义字段(使用Redmine管理中的自定义字段),我正在尝试访问这些自定义字段的值。有人知道我怎样才能得到这些吗

我目前的工作测试声明如下:

 system "echo '#{@project.identifier}, #{User.current}' >> /tmp/rm.log"

使用CustomField模型。比如说,

  # Find the first Custom Field
  cf = CustomField.first
  # Get the name
  puts cf.name
  # Find out if this Custom Field is for all projects
  cf.is_for_all?
  # If not, find out which projects are using it
  cf.projects
为了解决这个问题,我刚刚安装了Redmine-1.0.0,并查看了源代码和脚本/控制台

use DBI;

$dbServer='';
$user='';
$pass='';
$ident=$ARGV[0];

my $dsn = "dbi:mysql:database=redmine;host=$dbServer;port=3306";
my $dbh = DBI->connect($dsn, "$user","$pass") or die "Can't connet to the Database: $DBI::errstr\n";
my $sth = $dbh->prepare("SELECT value FROM custom_values c INNER JOIN projects p ON c.customized_id=p.id WHERE p.identifier='$ident' LIMIT 1");
$sth -> execute();
my @row=$sth->fetchrow_array();
my $serverParams=@row[0];

调用上面的脚本(而不是回显原始脚本),然后传入我们已经拥有的项目标识符,定制参数可以以任何方式使用。这段代码将它用于获取单个自定义字段(我只使用了一个)。

我设法解决了这个问题。我相信上面的方法是有效的,但我最终只是从Perl脚本中访问Redmine MySQL数据库,使用标识符获取数据以查找项目id,然后通过innerjoin查找自定义字段。明天早上我将为克里斯发布代码,因为他在这个问题上投入了精力。谢谢。我还有事情要处理,但这给了我一个开始。