覆盖rails方法避免深层堆栈

时间:2014-03-13 14:36:44

标签: ruby-on-rails carrierwave

我的rails应用程序有点问题。

我有一个带有两个图像上传器的cms:main_image和second_image。

当我显示新闻时,如果存在second_image,则返回第二张图像,否则返回主图像。

我的图像的所有版本都需要相同的行为。

我尝试

def main_image
 if second_image.file
   return second_image
 else
   return main_image
end

但这会创建一个并发症。我该如何解决这个问题?

更新

我忘了添加一个问题。

我的main_image有4个版本(全,方,块和拇指) 我的second_image只有3个版本(方块,块和拇指)

主图像版本Full始终存在。

1 个答案:

答案 0 :(得分:0)

将您的方法重命名为main_image以外的其他内容:

def image
  second_image.file ? second_image : main_image
end