gpt4 book ai didi

ruby-on-rails - 没有给定 yield 的 block

转载 作者:太空宇宙 更新时间:2023-11-03 18:20:40 24 4
gpt4 key购买 nike

所以执行这个给我一个错误:

没有给出 block (yield)

我们从来没有深入研究过 ruby​​ 中的 block ,这似乎是这里的一个问题。如果您有更好的解决方案,请提供,否则我想找到解决此遗留代码的方法...

  def tab_groupings    result = at_a_glance_grouping    result += rating_grouping if @domain_context.include_ratings and (controller.controller_name !='rewards_credit_cards')    result += specific_tab_groupings    result          end  def at_a_glance_grouping    result = [[:at_a_glance, yield]]    product_type = controller.controller_name == 'fairfax' ? @product_type_helper[:controller] : controller.controller_name    result[0][1].insert(0, :overall_rating) if @domain_context.include_ratings and (product_type !='rewards_credit_cards')    result  end

最佳答案

yield 用于执行您传递给该方法的 block ,然后您对该调用的结果执行某些操作。

您的方法 at_a_glance_grouping 因此希望您将一个 block 传递给它...然后它将在下一行执行(您使用 yield 的地方)

您没有将任何 block 传递给 tab_groupings 的第一行中的 at_a_glance_grouping,因此 ruby​​ 有理由提示。

你想通过 yield 达到什么目的?

你真的需要它吗?如果不是 - 那么只需将其删除。

如果有时您确实将一个 block 传递给此方法,那么您需要在调用 yield 之前检查它,例如:

 result = [[:at_a_glance, yield]] if block_given?

关于ruby-on-rails - 没有给定 yield 的 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18995151/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com