gpt4 book ai didi

javascript - 如何使用 Rails 从 AJAX 调用中检索值?

转载 作者:行者123 更新时间:2023-11-28 01:07:57 24 4
gpt4 key购买 nike

我有这个方案:JS:

jQuery.validator.addMethod(
"check_membership",
function() {
console.log('A');
$.ajax({
type: "POST",
url: "/subscriptions/check_validity",
dataType:"JSON",
data: {coupon: "12345"},
});
console.log('<%= @aaa %>');
},
"mmmmm"
);

和 Rails 操作:

  def check_validity
@aaa = 'xxx'
respond_to do |format|
format.js { render :text => @aaa }
end
end

我的目标是在 Javascript 中显示来自 Rails 的值 - @aaa,但是输出

console.log('<%= @aaa %>');

只是一个空的空间...

但我不确定这里正确的工作流程应该是什么(我只需要传递"is"/“否”等信息)。

谢谢大家!

最佳答案

Ajax 将数据的 params 变量发送到 Controller ,就像新记录的表单一样。在您的示例中,要检索优惠券值(value),请传递您在 ajax 调用中建立的 key 的参数:

def check_validity
value = params[:coupon] # returns "12345"
...
end

正如另一个答案中所述,这不会在您的 console.log 或 JavaScript 中的任何位置产生 @aaa 值。这些变量在服务器端解释,但 javascript 只能在客户端工作(除非您使用服务器端 javascript,但那是一匹不同颜色的马) 。这可能会令人困惑,因为我们在 View 中使用 Ruby 变量,但 View 在发送到客户端之前是在服务器上解释的。 JavaScript 不是。

一旦你通过参数值将变量传递给Rails,你就需要将任何新信息发送回客户端,这看起来就像你正在尝试使用:text => @aaa 。解决这个问题的方法有很多,但您可以从 Railscast 开始:

http://railscasts.com/episodes/324-passing-data-to-javascript

还有

http://railscasts.com/episodes/136-jquery-ajax-revised

关于javascript - 如何使用 Rails 从 AJAX 调用中检索值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24839210/

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