带有ajax的动态内容(ruby on rails)

时间:2012-07-30 17:48:02

标签: javascript jquery ruby-on-rails ajax json

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

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

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

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

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

      }, "json");

提前感谢您的帮助。


还有其他办法吗?

5 个答案:

答案 0 :(得分:5)

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

var id = $("#user_id").val();
$.get("/users/"+id+".json", function(data) { }, "json");

答案 1 :(得分:4)

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

  

&#34;&lt;%= javascript_tag&#34; var userId =#{@ current_user.id};&#34; %GT;&#34;

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

答案 2 :(得分:2)

$.get("/users/<%= params[:id] %>.json", function(data)
  {

  }, "json");

应该做的伎俩。

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

答案 3 :(得分:1)

很多选择:

  1. 如果您的当前用户对象具有ID(注意:这必须位于以.js.erb结尾的文件中):

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

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

  3. 如果你在url中有id值(就像你当前的url看起来像www.mywebsite.com/users/20,并且你希望GET请求使用20作为值),你可以使用{{ 1}}或document.url和一些字符串操作来获取id。

答案 4 :(得分:0)

尝试     &lt;%= escape_javascript(params [:id])%&gt; 我不完全确定escape_javascript是否必要或有帮助。