2012-02-18 3 views
0

나는 현재 http 게시 요청을 통해 새로운 문제를 만드는 플러그인을 작성 중이다. 현재 새로운 문제를 만들고 저장하는 데 문제가 있습니다. issue.save를 호출 할 때마다 false를 반환합니다. 나는 누군가가 올바른 방향으로 나를 가리키길 바랐다.Redmine Issue Creation Code

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("[email protected]") 
issue.status = IssueStatus.find_by_name("New") 
issue.save 
+2

당신이 저장하고자하는 문제의 객체가 유효한지 내 create_custom_value 방법입니다됩니다

issue.custom_values = [ create_custom_value(CustomField.find_by_name("StackTrace").id, params[:stackTrace]), ... more custom values ... ] 

issue.save를 호출하기 전에 다음 코드를 추가? 'issue.valid?'메소드를 호출하여이를 검사하거나 save (false)를 호출하는 유효성 검사없이 저장할 수 있습니다. 유효성 검사 메시지를 확인할 수 있습니다. issue.errors.full_messages afeter save. – Kuba

+0

왜 바퀴를 다시 태어 났을까요? Redmine에는 이미 문제를 생성 할 수있는 REST API가 있습니다. 다음은 API 문서입니다. http://www.redmine.org/projects/redmine/wiki/Rest_Issues –

+0

redmine에 예외 보고서를 게시 할 권한이 필요합니다. redmine이 보고서를 받으면 새로운 발행물을 만들거나 기존 발행물을 업데이트 (증분 및 기타 정보)해야합니다. 클라이언트 측 응용 프로그램은 파일 인 보고서가 새 것인지 아닌지를 알지 못합니다. –

답변

0

귀하의 모든 빠른 답변에 감사드립니다. 그들은 저를 크게 도와주었습니다.

issue.errors.full_messages을 호출 한 후 필수 사용자 정의 필드가 설정되지 않았기 때문에 문제를 저장할 수 없다는 것을 발견했습니다.

나는 여기

# 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 
1

일부 오류가 발생 여기

사전

에 감사드립니다 내가 현재 가지고있는 코드입니다!

Rails.logger.info issue.errors.inspect 
0

당신은 문제를 만들 수 있습니다 (그리고 많은 다른 일을) REST API를 사용하여 레드 마인에 : 어떤 확인 issue.errors을 검사합니다.