5

我正在使用 Rails 和 jquery,我需要一个带有 ajax 的动态内容。

但我不知道如何获取当前用户ID

例如,网址是 www.mywebsite.com/users/ 20

在我的 javascript 文件中,我需要用户 ID (20)

$.get("/users/<%= **20** %>.json", function(data)
      {

      }, "json");

提前感谢您的帮助。


还有另一种方法吗?

4

5 回答 5

5

通常我在页面中的某处放置一个hidden字段,我可以在 javascript 文件上轻松访问,然后请求将是这样的: id$("#user_id")

var id = $("#user_id").val();
$.get("/users/"+id+".json", function(data) { }, "json");
于 2012-07-30T17:58:42.563 回答
4

您可以将 rails 变量值分配给视图文件中的 javascript 变量,例如

"<%= javascript_tag "var userId = #{@current_user.id};" %>"

并在任何你想要的地方访问 js 文件中的变量。

于 2012-08-07T11:02:32.490 回答
2
$.get("/users/<%= params[:id] %>.json", function(data)
  {

  }, "json");

应该做的伎俩。

将代码段包含到 .erb 文件中或使用它创建一个 .js.erb 部分。

于 2012-07-30T17:52:59.167 回答
1

很多选择:

  1. 如果您有一个带有 id 的当前用户对象(注意:这必须在以 结尾的文件中.js.erb):

    $.get("/users/<%= @current_user.id %>.json", function(data){...}, "json");

  2. 如果您不想使用.js.erb文件,但仍需要在页面上的某处设置值,则使用 id 值设置数据属性或隐藏输入。

  3. 如果您在 url 中有 id 值(就像您所在的当前 url 一样www.mywebsite.com/users/20,并且您希望 GET 请求使用 20 作为值),您可以使用document.urlorwindow.location.href和一些字符串操作来获取 id。

于 2012-07-31T18:50:28.510 回答
0

尝试 <%= escape_javascript(params[:id]) %> 我不完全确定 escape_javascript 是否必要或会有所帮助。

于 2012-07-30T19:53:45.380 回答