gpt4 book ai didi

ruby-on-rails - 在 Ruby on Rails 中使用 send 有什么好处?

转载 作者:数据小太阳 更新时间:2023-10-29 08:24:13 24 4
gpt4 key购买 nike

我注意到在我正在处理的代码中,send 被频繁使用,我并不完全理解它。使用它而不是不使事情复杂化而不使用它有什么好处?

一个例子:

  def star_ratings_count(rating)
self.send("#{rating}_ratings".to_sym).star.count
end

def update_star_ratings_count
self.ratings_count = star_ratings_count(:criteria_one_rating)
end

最佳答案

在很多情况下,send 更可取。其中一些(我自己遇到的)在下面

  1. 当您不知道真正的方法名称时。就像您的示例一样。
  2. 使用send,您可以调用私有(private)或 protected 方法。因此,您可以使用它从外部测试模型测试这些方法。
  3. 当你想在循环中调用方法时。像这样的东西

    [:method1, :method2].each { |method| object.send(方法) }

关于ruby-on-rails - 在 Ruby on Rails 中使用 send 有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12396969/

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