【问题标题】:Accessing a passed variable from JQuery to Rails controller访问从 JQuery 到 Rails 控制器的传递变量
【发布时间】:2011-05-22 05:51:11
【问题描述】:

我有这个 JQuery 代码:

    $("div.notification").live("click", function(){
        window.location=$(this).find("a").attr("href");
        var myId = $(this).attr("id");
        $.post("/videos/selected_notification.js", myId);
        return false;
    });

我希望能够从我的控制器内部访问发布请求命中的myId。我该怎么做?

【问题讨论】:

    标签: jquery ruby-on-rails ruby ajax ruby-on-rails-3


    【解决方案1】:

    为您的myId 值命名,您可以将其从params 中提取出来,就像任何其他 POST 参数一样:

    $.post("/videos/selected_notification.js", { id: myId });
    

    然后,在控制器中:

    id = params['id'] # Or params[:id] since params is a HashWithIndifferentAccess
    

    【讨论】:

    • 啊,太好了...如果我实际上没有发布任何内容怎么办。那个代码可以吗?
    • 也不会是params[:id]
    • @Justin:如果您不发布任何内容,为什么要使用$.post?您必须发布一些内容才能将数据发送到服务器(或者如果更合适,请使用 GET)。使用:id 符号或'id' 字符串访问params 应该可以工作。
    • @Justin: params 实际上是HashWithIndifferentAccess,而不是普通的Hash。键实际上是字符串,但 HashWithIndifferentAccess 会为您将符号转换为字符串。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-28
    • 1970-01-01
    • 1970-01-01
    • 2016-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多