我正在编写一个插件,通过http post请求创建一个新问题。我目前在创建和保存新问题时遇到问题。每次我调用issue.save时,它都返回false。我希望有人能指出我正确的方向。提前谢谢
以下是我目前的代码:
issue = Issue.new
issue.tracker = Tracker.find_by_name("Bug")
issue.subject = params[:subject]
issue.description = params[:description]
issue.project = Project.find_by_name(params[:project])
issue.start_date = Time.now.localtime.strftime("%Y-%m-%d")
issue.priority = IssuePriority.find_by_name("Normal")
issue.author = User.find_by_mail("XXX@gmail.com")
issue.status = IssueStatus.find_by_name("New")
issue.save
答案 0 :(得分:1)
发生了一些错误!检查issue.errors以检查:
Rails.logger.info issue.errors.inspect
答案 1 :(得分:0)
您可以使用REST API在Redmine中创建问题(并执行许多其他操作)。
答案 2 :(得分:0)
感谢您的快速回复,他们给了我很大的帮助。
调用issue.errors.full_messages
后,我发现无法保存问题,因为未设置所需的自定义字段。
我在调用issue.save之前添加了以下代码
issue.custom_values = [
create_custom_value(CustomField.find_by_name("StackTrace").id, params[:stackTrace]),
... more custom values ...
]
这里也是我的create_custom_value方法
# returns a new custom value
def create_custom_value(field_id, value)
custom_value = CustomValue.new
custom_value.custom_field_id = field_id
custom_value.value = value
custom_value.customized_type = "Issue"
return custom_value
end