我正在尝试使用一些 Ruby 魔法重构我的代码(在它是一堆 if/else-if 语句之前)。但是,当我尝试在哈希中使用代码块作为我的值时,我收到以下错误:
syntax error, unexpected '}', expecting tASSOC :restaurant => { Cuisine.all },
:hotel
下一行和 (和:attraction
)之后的行重复同样的错误。
我在这里做错了什么?
def moderation_categories(klass)
klass_map = {
:restaurant => { Cuisine.all },
:hotel => { Category.where(place_type: "Hotel") },
:attraction => { Category.where(place_type: "Attraction") }
}
list = []
klass_map[klass.to_sym].call.each { |c| list << c.name }
list.sort
end