Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 重写rails方法避免深度堆栈_Ruby On Rails_Carrierwave - Fatal编程技术网

Ruby on rails 重写rails方法避免深度堆栈

Ruby on rails 重写rails方法避免深度堆栈,ruby-on-rails,carrierwave,Ruby On Rails,Carrierwave,我的rails应用程序有点问题 我有两个图像上传:主图像和第二图像cms 当我显示新闻时,如果第二个图像存在,则返回第二个图像,否则返回主图像 我需要对我的所有图像版本进行相同的行为 我试着用 def main_image if second_image.file return second_image else return main_image end 但这会造成复发。我怎样才能解决这个问题 更新 我忘了添加一个问题 我的主图像有4个版本(完整、方形、块和拇指) 我的第二张

我的rails应用程序有点问题

我有两个图像上传:主图像和第二图像cms

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

我需要对我的所有图像版本进行相同的行为

我试着用

def main_image
 if second_image.file
   return second_image
 else
   return main_image
end
但这会造成复发。我怎样才能解决这个问题

更新

我忘了添加一个问题

我的主图像有4个版本(完整、方形、块和拇指) 我的第二张图片只有3个版本(正方形、方块和拇指)


主映像版本已满始终存在。

将您的方法重命名为除主映像之外的其他方法。:

def image
  second_image.file ? second_image : main_image
end

添加更多carrierwave详细信息简单的解决方案是提供一个适当命名的方法,例如,
get\u image
,用于实际工作。这也更容易沟通。