我正在尝试制作一个允许配置产品的表单。例如,您可以添加一个小部件,这将导致产品的价格添加£x 。例如,Apple's configuration page。如果您选择不同的处理器或w / e,价格将在视图中相应更新。
所以我的模型中有一个包含基本价格的字段,我将视图中显示的价格设置为base_price + addons[]
。
我无法弄清楚当用户更改某些配置设置时如何更新视图中的价格。我可以更改变量的值,但我不知道如何更新视图中显示的内容。
据我所知,视图中的嵌入式Ruby代码只能在加载时调用,因此显示的价格始终只是total_price
变量的原始值。我猜我需要Javascript,但Rails中有没有这样的规定呢?
感谢。
答案 0 :(得分:1)
是的,您可以将remote:true选项添加到表单中,然后在通过ajax将数据发送到服务器并在控制器中处理之后,您可以使用扩展名.html.js呈现视图,并在该视图中添加一些javascript代码来更新您当前的视图:
$("#total-price").replaceWith("<%= j(render(partial: 'location', layout: false)) %>");
然后在ajax调用之后返回到视图时执行那段javascript(你可以通过erb增强某些ruby)。
这是rails提供的一个非常强大的工具。