【发布时间】:2019-09-04 00:22:34
【问题描述】:
我正在构建一个 Rails 应用程序,其中有一个博物馆页面,该页面具有一个功能,可以显示拥有最多展品的博物馆。问题是,当没有展品添加到数据库时,它会给出一个未定义的方法“museum_name”。所以我遇到的问题是,我不确定如果有零展品,什么是进行检查仍允许我访问该页面的最佳方法?
博物馆管理员:
def index
@museums = Museum.all
most_exhibits = Exhibit.most_exhibits
most_exhibits.each do |museum|
@top_museum = MuseumsHelper.get_museum_name(museum.museum_id)[0]
end
正在使用的助手类方法:
def self.get_museum_name(museum_id)
Museum.where(id: museum_id)
end
在视图中显示:
<%= @top_museum.museum_name %>
【问题讨论】:
-
方法名称
get_museum_name具有误导性。这意味着它返回一个博物馆的名称,即一个字符串。但相反,它返回一个包含整个博物馆的数组(或一个空数组)。修复这些怪癖可以更容易地推断出实际的错误。
标签: ruby-on-rails ruby undefined nomethoderror