Rails应用开发:从原子订阅到邮件发送的实践指南
1. 解决购物车更新问题
在开发过程中,我们遇到了一个关于购物车更新的问题。原本使用 page[:notice].hide 来隐藏提示信息,但当用户首次访问商店时,闪存中没有相关信息,导致 id 为 notice 的段落未显示。此时,RJS 模板生成的 JavaScript 尝试隐藏该元素时会报错,进而导致模板的其余部分无法运行,购物车更新也无法在侧边栏显示。
解决方案是采用一个小技巧。由于 RJS 无法直接生成用于测试单个 id 的 JavaScript 代码,但它允许我们遍历页面上匹配特定 CSS 选择器模式的标签。因此,我们可以遍历所有 id 为 notice 的标签。如果找到这样的标签,就将其隐藏;若未找到,则不执行隐藏操作。代码如下:
page.select("#notice").each { |notice| notice.hide }
page.replace_html('cart', render(@cart))
page[:cart].visual_effect :blind_down if @cart.total_items == 1
page[:current_item].visual_effect :highlight,
:startcolor => "#88ff88",
:endcolor => "#114411"
超级会员免费看
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



