我想使用 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。
它应该如何运作?
答案 0 :(得分:0)
您可以使用https://rubygems.org/gems/redmine_client,因为它是ActiveResource的包装器,并且您可以在没有痛苦的情况下更改这些字段。只有一个已知问题是通过该gem上传文件。