Ruby 为什么要再次创建相同的任务?
下面是我为与API(Habitica)接口而编写的代码摘录。下面的代码旨在创建一个任务,除非已经存在同名的任务。但是,在实践中,它将继续一次又一次地创建同名任务(尽管该任务已成功添加到任务列表中)。当我重新启动这个程序并重复时,它就会知道任务已经在那里了Ruby 为什么要再次创建相同的任务?,ruby,Ruby,下面是我为与API(Habitica)接口而编写的代码摘录。下面的代码旨在创建一个任务,除非已经存在同名的任务。但是,在实践中,它将继续一次又一次地创建同名任务(尽管该任务已成功添加到任务列表中)。当我重新启动这个程序并重复时,它就会知道任务已经在那里了 def task_exists?(text) @habit.tasks.todos.any? { |t| t.text == text } end # create task def create_task(text) if ta
def task_exists?(text)
@habit.tasks.todos.any? { |t| t.text == text }
end
# create task
def create_task(text)
if task_exists?(text)
puts "\nTask already exists. No action taken!"
else
puts "\nCreating #{text}..."
@habit.tasks.create(
text: text,
type: 'todo'
)
end
end
这可能是由于我的代码中的逻辑流造成的吗?也就是说,是否有明显的迹象表明该方法无法看到更新的任务列表,或者我是否可以确保在不需要重新启动程序的情况下搜索“更新的”列表
谢谢。TODO是如何定义的?可能是缓存-如果某个地方正在缓存
@habity
(或@habity.tasks
或@habity.tasks.todos
),请确保在添加新任务或检查任务是否存在时已刷新缓存。这肯定是缓存。如何定义@habity.tasks
和@habity.tasks.todo
?@habity
是连接到API的凭据的全局变量<代码>@HabiticaClient.new(ENV['HABITICA\u USER\u ID',ENV['HABITICA\u API\u TOKEN')```@habitic.tasks和@habitic.tasks.todo
由我试图将脚本连接到的API处理:。。。也许问题在于here@omnikron你应该把它贴出来作为答案。