gpt4 book ai didi

javascript - 有没有办法将javascript变量传递给html.erb中的ruby方法

转载 作者:数据小太阳 更新时间:2023-10-29 07:18:20 25 4
gpt4 key购买 nike

我正在尝试将一个变量传递给一个方法。这是一个例子:

<script>
var b = 1
var c = "string" + "<%= method.a(b).to_s%>"
</script>

这是行不通的。

这个有效:

<% @b = 1%>
<script>
var c = "string" + "<%= method.a(@b).to_s%>"
</script>

如有任何想法,我们将不胜感激。

最佳答案

您不能在 Ruby 方法中计算 JavaScript 变量。此外,您当前的脚本必须在 Assets 管道之外,这通常是一种不好的做法。

一个简单的解决方案是将变量作为数据属性传递。您将运行您的方法,然后在加载 DOM 后使用 jQuery 传递结果。这允许您将 JavaScript 保留在 Assets 管道中,并将由 Ruby 服务器端评估的数据传递给它。

注意:@b 应该在你的 Controller 上定义:

<div id="foo" data-bar="<%= method.a(@b).to_s %>"></div>

<script>
$(document).ready(function() {
var b = $(#foo).data('bar');
var c = "string" + b;
});
</script>

另一种选择是使用 unobtrusive JavaScript 异步呈现您的脚本在 Rails 中。

关于javascript - 有没有办法将javascript变量传递给html.erb中的ruby方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32724881/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com