应该有一个更好的方法来编写不会抛出NoMethodError的代码,我被卡住了

时间:2018-04-25 22:03:28

标签: ruby-on-rails

应该有一种更好的方法来编写不会抛出NoMethodError的代码,我被卡住了。 我的堆栈跟踪

# NoMethodError · undefined method `account' for nil:NilClass

def email_talent_match_only_one(talent, match) 
  @talent = talent 
  @position = match.position 
  @account = match.position.account    

  if @account.present? and @talent.present?
  # ...
end

1 个答案:

答案 0 :(得分:3)

这是Ruby中相当常见的错误。当您尝试检索帐户时,var svgWidth = ... var svgHeight = ... var svgArea = svgWidth * svgHeight; console.log("The area of the SVG is " + svgArea); 正在返回nil。然后,您正试图在导致错误的match.position上致电account

如果需要这样做,您可能需要使用NilClass语法或&.方法返回try,而不是抛出错误。

nil