我为网络项目实施了星级评分系统。
在rails后端计算星数并使用视图渲染。 现在我也通过ajax实现了动态评级。因此,我需要动态更新星级。
为了实现这一目标,我只需复制rails代码并在JavaScript中重新实现它。虽然这个解决方案有效,但我对此并不满意,因为它似乎违反了DRY原则。
这件事的最佳做法是什么?通过JavaScript计算所有星级?
我很高兴能找到解决方案。
答案 0 :(得分:2)
您可以为计算此评级的操作发出AJAX get请求。在此操作中,您可以查看请求是否为AJAX,然后只返回计算的值,而不是呈现相关视图。
我假设您熟悉使用respond_to
和request.xhr?
方法渲染JSON,等等。
答案 1 :(得分:1)
如果您已经在进行Ajax调用(“我还通过ajax实现了动态评级”),为什么不在发送响应之前进行计算,并将结果添加到响应中?
答案 2 :(得分:0)
我决定采用以下解决方案:
我认为我可以忽略小部分的小html开销 - 它比返回Json并使用JavaScript格式化它更酷。