使用ActiveResource更新Redmine问题

时间:2014-07-23 15:28:46

标签: ruby redmine activeresource

我想使用 ActiveResource 更新一些 Redmine 问题。

例如,加载的ActiveResource对象:

require 'active_resource'
require 'pp'

issue = Issue.find(id: 48549)
pp issue.attributes

输出:

{"status"=>
  #<Issue::Status:0x2ebc8e8
   @attributes={"name"=>"New", "id"=>1},
   @persisted=false,
   @prefix_options={}>,
 "custom_fields"=>
  [#<Issue::CustomField:0x03bb188
    @attributes={"value"=>"", "name"=>"Code Reviewer", "id"=>38},
    @persisted=false,
    @prefix_options={}>,
   #<Issue::CustomField:0x3538518
    @attributes={"value"=>"1000", "name"=>"Inner Priority", "id"=>47},
    @persisted=false,
    @prefix_options={}>,
   #<Issue::CustomField:0x3536280
    @attributes={"value"=>"", "name"=>"Team", "id"=>87},
    @persisted=false,
    @prefix_options={}>],
 "done_ratio"=>100,
 "updated_on"=>"2014/07/22 17:22:40 +0300",
 "start_date"=>"2014/06/29",
 "description"=>"TEST - TEST - TEST",
 "author"=>
  #<Issue::Author:0x352fe48
   @attributes={"name"=>"Idit", "id"=>279},
   @persisted=false,
   @prefix_options={}>,
 "created_on"=>"2014/06/29 16:31:31 +0300",
 "id"=>48549,
 "subject"=>"This is a subject"}

问题是,当我试图更新不是'标准'属性时,例如'subject'或'description',它们是简单的字符串。

在'status'属性上,例如,我可以设置Issue :: Status对象,因此可以设置整个问题对象,但我无法在源Redmine问题上保存此更改

奇怪的是,对象已成功保存:issue.save返回true。

它应该如何运作?

1 个答案:

答案 0 :(得分:0)

您可以使用https://rubygems.org/gems/redmine_client,因为它是ActiveResource的包装器,并且您可以在没有痛苦的情况下更改这些字段。只有一个已知问题是通过该gem上传文件。