Rally Ruby工具包:如何​​获取Portfolio Item状态的URL?

Ruby中是否有使用rally_api的示例如何设置此处提到的function状态?

具体来说,有没有办法查询ObjectID或要使用的完全限定的状态路径

"State" => "Developing" 

代替

 "State" => "/state/" 

可以查询State,创建哈希,并使用查询结果填充哈希,其中State Name是键,State _ref是值:

 state_results.each do |s| s.read state_hash[s["Name"]] = s["_ref"] end 

然后我们可以更新一个州:

 features.each do |f| field_updates={"State" => state_hash["Developing"]} f.update(field_updates) end 

这是一个代码示例:

 @rally = RallyAPI::RallyRestJson.new(config) queryState = RallyAPI::RallyQuery.new() queryState.type = :state queryState.fetch = "true" queryState.workspace = {"_ref" => "https://rally1.rallydev.com/slm/webservice/v2.0/workspace/11111" } queryState.project = {"_ref" => "https://rally1.rallydev.com/slm/webservice/v2.0/project/22222" } #use valid OIDs queryState.query_string = "(TypeDef.Name = \"Feature\")" state_hash = Hash.new state_results = @rally.find(queryState) state_results.each do |s| s.read #puts "Ref: #{s["_ref"]}, Name: #{s["Name"] }, TypeDef: #{s["TypeDef"]}" state_hash[s["Name"]] = s["_ref"] end query = RallyAPI::RallyQuery.new() query.type = "portfolioitem/feature" query.fetch = "Name,FormattedID" query.workspace = {"_ref" => "https://rally1.rallydev.com/slm/webservice/v2.0/workspace/1111" } query.project = {"_ref" => "https://rally1.rallydev.com/slm/webservice/v2.0/project/22222" } #use valid OIDs query.query_string = "(Name = \"my feature\")" results = @rally.find(query) features = []; results.each do |f| f.read puts "Current state of Feature #{f["FormattedID"]}: #{f["State"].to_s}" features << f end features.each do |f| field_updates={"State" => state_hash["Developing"]} f.update(field_updates) puts "Feature #{f["FormattedID"]} is now in State: #{f["State"].to_s}" end