@results
我在(即@results = @videos + @artists
)中有两种对象。
我正在尝试做,伪代码:
@results.map(&:title || &:first_name)
视频有标题栏,但艺术家没有。我该如何进行这项工作?
我可以进入每个循环,但要寻找更好的方法来解决这个问题。
@results
我在(即@results = @videos + @artists
)中有两种对象。
我正在尝试做,伪代码:
@results.map(&:title || &:first_name)
视频有标题栏,但艺术家没有。我该如何进行这项工作?
我可以进入每个循环,但要寻找更好的方法来解决这个问题。
我不会试图找到正确的方法,而是创建一个可以从任何地方调用的通用接口。
示例(我正在使用一种名为“名称”的方法,但您可以选择其他名称):
Video 类将具有“name”方法,如下所示:
class Video
def name
self.title
end
end
对于 Artist 类,我也会这样做,但使用“first_name”方法:
class Artist
def name
self.first_name
end
end
他们,您可以在地图块上使用相同的方法(名称):
@results.map(&:name)
@results.map{|x|
x.title if x.respond_to?('title')
x.first_name if x.respond_to?('first_name')
}