根据您所在的页面禁用图像

时间:2013-04-05 10:39:53

标签: ruby ramaze

我有一个奇怪的问题,我想实施。我已经考虑了一段时间,但我无法提出解决方案。

所以我想说我访问了www.rene.com/promotions/hitman。在这个页面的RHS中,我有一个不好的方面显示其他促销图像。现在我想从侧边栏隐藏杀手的图像。简而言之,当我在促销页面上时,右侧边栏上与我访问过的促销相关的图片不会显示。右侧边栏使用循环并加载所有图像。我如何将右侧边栏与我访问的促销联系起来?唯一的共同点是促销的名称和促销图片的文件夹:

促销链接:www.rene.com/promotions/hitman

侧边栏图片:/img/promotions/hitman/250x90.jpg

1 个答案:

答案 0 :(得分:1)

解决方案1 ​​

查找当前环境与正在迭代的循环中的数据之间的匹配数据。您可以在request中找到有用的信息。例如,如果您要跳过的图片有src甚至href,那么您可以将其与您的请求环境网址(通常为request.env['PATH_INFO'])或类似内容进行匹配。

如果您的图片/链接的href与请求中的路径信息相同,那么您应该跳过当前的迭代(next),因为您将呈现链接到您当前所在的页面。

解决方案2

使用Ramaze,这就是我解决这个问题的方法。首先,我需要说明一些假设/主张。

您可能有一个布局模板或索引模板来呈现您需要匹配的两个不同模板(您的页面和“右侧边栏”)。如果您的布局或索引模板呈现您需要匹配的部分,则解决方案在于将该匹配作为参数发送到该部分。

您的控制器(由于您的网址可能称为promotions.rb)应该(或可能)拥有一个名为hitman的操作方法。此方法表示访问页面promotions/hitman的操作。在此处声明一个可在整个实例中使用的变量(instance variableread more here)。

您现在有一个instance variable可以在布局/索引模板中使用,并作为参数发送给部分。

在partial中,您需要接收它并将其与您当前正在迭代的对象(在您的示例中,图像URL)匹配 - 如果它们匹配则隐藏该图像(或使用{{3跳过迭代)在你的循环中。)