【问题标题】:How to get a JavaScript variable into Ruby code如何将 JavaScript 变量导入 Ruby 代码
【发布时间】:2014-11-25 21:54:13
【问题描述】:

我的 ruby​​/rails 应用程序有点问题。

我想从我选择的项目中获取 ID 并与他们进行查询。

在我的_form中我有:

<%= f.label "Stock", for: "text" %>
<%= f.select :stock_id, @stocks_list, {},  onchange: 'ShowUser(this.value)' %>

我的 JavaScript 代码是:

function ShowUser(str){
   alert("You select item with value: " + str);
}

我需要在我的控制器上捕获 'str' 值并动态显示所选 sotck 的信息(通过查询)。

更新:

当我选择一个项目时,只在弹出窗口中显示消息,没有其他内容。我的完整功能是

function ShowUser(str)
{

    alert("You select item with value: " + str);

    JQuery.ajax( { 
        data: {valor: str},
        type: 'post',
        url: "/orders/create",
    });

}

控制台日志是

Started GET "/orders/new" for 127.0.0.1 at 2014-11-25 16:54:39 -0600
Processing by OrdersController#new as HTML
Staff Load (0.2ms)  SELECT `staffs`.* FROM `staffs`
Provider Load (0.2ms)  SELECT `providers`.* FROM `providers`
Stock Load (0.2ms)  SELECT `stocks`.* FROM `stocks`
Rendered public/templates/menu.html.erb (1.0ms)
Rendered orders/_form.html.erb (6.8ms)
Rendered orders/new.html.erb within layouts/application (39.7ms)
Completed 200 OK in 273ms (Views: 268.3ms | ActiveRecord: 0.7ms)

当我选择一个项目时,控制台不会改变

【问题讨论】:

  • 你必须向服务器发出请求。你是怎么提出这样的要求的?
  • 我从这个link尝试了这个JQuery.ajax( { data: {valor: str}, type: 'post', url: "/orders/create", });
  • 当你尝试这样做时,发生了什么?
  • Rails 是服务器端。 Javascript是客户端。你需要发送一个 Ajax 请求来实现你之后的结果
  • @AlexWayne 什么都不做。

标签: javascript ruby-on-rails ruby


【解决方案1】:

也许您应该在 POST 请求标头中使用 X-CSRF-Token?

【讨论】:

    【解决方案2】:

    您的请求不起作用的原因是您使用了错误的语法。它试图找到一个名为 JQuery 的变量,因此为什么会出现错误 Uncaught ReferenceError: JQuery is not defined

    正确的语法是jQuery.ajax$.ajax

    更正后,您应该在控制器中创建您的请求所指向的响应,以实时确认其一切正常。但是您应该会在您的 rails 控制台中看到该请求。

    另一方面,我在 cmets 中注意到您使用 chrome 及其开发者控制台。我强烈建议您使用 firefox 及其插件 firebug 进行所有调试。我发现它比 chrome 好得多,而且很容易在你的代码中看到错误,就像这段代码中的错误一样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-01
      • 2023-03-10
      • 1970-01-01
      • 2021-03-16
      • 1970-01-01
      相关资源
      最近更新 更多