如何解决“Trello::Error: label not found”?

问题描述

我正在开发一个将通过 Trello 看板的应用程序,对于没有特定标签(例如“电子邮件已发送”)的卡片,请发送电子邮件。我在一块板上完全可以使用它,但是当我切换到不同的板时,出现此错误

E,[2021-07-26T19:10:07.774909 #313] ERROR -- : [404 POST https://api.trello.com/1/cards/60fb1d96ac68e617ff121cff/idLabels]: label not found
Trello::Error: label not found
from /usr/local/bundle/gems/ruby-trello-2.3.1/lib/trello/client.rb:99:in `invoke_verb'

我认为这与将标签范围限定到特定板或类似内容的方式有关。

编辑:正如@engineersmnky 指出的那样,下面的内容可能无关紧要,但我将其保留以供参考:

但是,如果您将该 URL 放在错误中,只将其放入 Chrome 中,您就会看到这个页面

Trello 404

这似乎意味着权限问题。

我对两个帐户拥有相同的 API 权限,所以我不确定问题是什么。

这是底层代码:我从不同的上下文中将它拼凑在一起,以避免包含不相关的代码,所以希望它有意义。


#Main flow of code
  def iterate_through_boards
    @boards = Trello::Board.all
    boards.each do |board|
      @board = board

      iterate_through_lists
    end
  end

  def iterate_through_lists
    board.lists.each do |list|

      #Ignore list_ac_campaign_id for Now. It gets pulled from elsewhere
      email_sent_label = assign_sent_label(list_ac_campaign_id)
  
      cards = list.cards

      iterate_through_cards(cards,email_sent_label)
    end
  end

  def iterate_through_cards(cards,email_sent_label)
    cards.each do |card|
      next if card.card_labels.include?(email_sent_label.id)

      send_email_if_needed.(card,order_number,email_sent_label)
    end
  end

  def send_email_if_needed

     #if the email sends,then it runs this function
     attach_sent_label if send_email
  end


  
  #The code that adds the email after everything else,#so that it won't run on that card again

  def attach_sent_label
    card.add_label(email_sent_label)
    #This line above triggers the error
  end



#email_sent_label is assigned by this code:

  @phase_labels = {
      p1_label: Trello::Label.find('60db99d5230c123a1ab808d0'),p2_label: Trello::Label.find('60e61ad78f4b51135ba0d547'),p3_label: Trello::Label.find('60e61ae7d76c8d0812dde650')
    }

  #list_ac_campaign_id is irrelevant,just kNow it helps assign email_sent_label
  def assign_sent_label(list_ac_campaign_id)
    case list_ac_campaign_id
    when 147
      phase_labels[:p1_label]
    when 146
      phase_labels[:p2_label]
    when 145
      phase_labels[:p3_label]
    end
  end

就像我在评论中所说的,错误是由这一行触发的:card.add_label(email_sent_label)。我怎样才能做到这一点,以便我可以跨多个板访问这些标签并将其分配给卡片?如果有不清楚的地方,请告诉我。

更新:我已经确认这是一个问题,不同的标签在不同的板上具有不同的 ID,即使你从另一个板上复制它们。因此,看起来您需要一些解决方法,可以按名称而不是 id 定位标签,或者找到某种方法来跨板访问或复制标签,或者找到一些其他方法使此机制更灵活以适应每个板的不同标签

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)