如何将JavaScript变量转换为Ruby代码

时间:2014-11-25 21:54:14

标签: javascript ruby-on-rails ruby

我的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)

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您的请求无效的原因是您使用了错误的语法。它试图找到一个名为JQuery的变量,这就是为什么你得到错误Uncaught ReferenceError: JQuery is not defined

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

在纠正之后,您应该在控制器内创建一个响应,您的请求指向该响应以实时确认其全部工作。但是你应该在rails控制台中看到请求。

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