Ruby on rails 需要帮助重构和加速视图的if语句吗

Ruby on rails 需要帮助重构和加速视图的if语句吗,ruby-on-rails,optimization,refactoring,dry,Ruby On Rails,Optimization,Refactoring,Dry,我的助手中有以下RubyonRails代码。当我在页面上有很多链接时,我的视图加载速度很慢 有谁能给我看一个经过重构的版本,它会是干巴巴的,并且可以加快速度 模块应用程序助手 def链接到文档(文档) 如果document.document\u type.downcase==“image” 链接到“#{document.name}”,“#{document.url}”,类:“升华” elsif document.document_type.downcase==“视频” 升华视频链接到(文档)

我的助手中有以下RubyonRails代码。当我在页面上有很多链接时,我的视图加载速度很慢

有谁能给我看一个经过重构的版本,它会是干巴巴的,并且可以加快速度

模块应用程序助手
def链接到文档(文档)
如果document.document\u type.downcase==“image”
链接到“#{document.name}”,“#{document.url}”,类:“升华”
elsif document.document_type.downcase==“视频”
升华视频链接到(文档)
elsif document.url&&document.url.length>0
链接到“#{document.name}”,“#{document.url}”,下载:“#{document.name.parameterize}”
elsif document.admin\u url&&document.admin\u url.length>0
content\u标签:a,href:document.admin\u url do
链接到“#{document.name}”,document.admin_url
结束
其他的
链接到“#{document.name}”,文档url(文档)
结束
结束
def btn_链接到_文档(文档)
如果document.document\u type.downcase==“image”
链接到“查看”{document.document\u type.downcase}“,“{document.url}”,类:“文档链接btn升华”
elsif document.document_type.downcase==“视频”
升华视频链接到(文档)
elsif document.url&&document.url.length>0
链接到“下载”{document.document\u type.downcase}“,“{document.url}”,下载:“{document.name.parameterize}”,类:“文档链接btn”
elsif document.admin\u url&&document.admin\u url.length>0
content\u标签:a,href:document.admin\u url do
链接到“视图”,document.admin\u url,类:“文档链接btn”
结束
其他的
链接到“视图”,文档url(文档),类:“文档链接btn”
结束
结束
私有的
def升华视频链接到(文档)
标签=[]

标记而不是重复检查

    document.admin_url && document.admin_url.length > 0
你可以用

   document.url.to_s.blank?

它将检查nil和空字符串

您是否使用过任何分析工具来检查它是否确实是这些助手,而不是其他什么?分析工具还可以帮助您找出问题的根源。您介意将代码复制并粘贴到初始问题吗?我不介意单击并查看代码,但堆栈溢出约定要求将代码放在问题的正确位置(此外,这可能会鼓励更多ppl查看并回答!)。是否更改为.blank?大大提高了性能。但是,页面加载时间仍然是1.5秒,并且大部分来自if语句,因为它正在一个列表中运行,并对每个文档反复重复该函数。所以我正试图进一步改进它。还有其他建议吗?这取决于此列表的长度,但您可以向他们提供一些提示,看看它们是否有助于array.compact!将删除阵列中的所有零。展平!它是数组的数组array.uniq!删除所有重复项,因此可以使用2种方法删除\u if和如果过滤大部分数组用户保留\u if
   document.url.to_s.blank?