1

我正在尝试使用 Redmine 的 API 来创建问题,但它似乎并没有让我指定谁在提交票证。我已经尝试过author_id,但它似乎不起作用。

这是 POST 中的 JSON 数据的样子:

    {
        "issue": {
            "author_id": 3,
            "project_id": 26,
            "subject": "Q-12345678",
            "description": "This is a test"
        }
    }

正在创建问题,但作者被设置为匿名。有什么建议么?

4

1 回答 1

1

嗯,我想通了。事实证明,author_id它没有设置为“安全参数”。

我打开app/models/issue.rbauthor_id在第 337 行添加。

所以现在这段代码看起来像这样:

    safe_attributes 'tracker_id',
      'status_id',
      'category_id',
      'author_id',
      'assigned_to_id',
      'priority_id',
      'fixed_version_id',
      'subject',
      'description',
      'start_date',
      'due_date',
      'done_ratio',
      'estimated_hours',
      'custom_field_values',
      'custom_fields',
      'lock_version',
      'notes',
      :if => lambda {|issue, user| issue.new_record? || user.allowed_to?(:edit_issues, issue.project) }

编辑

我认为这可能是app/models/issue.rb(第 375 行)中的更好解决方案

    safe_attributes 'parent_issue_id',
        :if => lambda {|issue, user| (issue.new_record? || user.allowed_to?(:edit_issues, issue.project)) &&
          user.allowed_to?(:manage_subtasks, issue.project)}

我添加了

    safe_attributes 'author_id',
        :if => lambda {|issue, user| issue.new_record? || user.allowed_to?(:admin, issue.project)}
于 2013-02-14T15:54:42.683 回答