我正在使用Rails和jquery,我需要一个带有ajax的动态内容。
但我不知道如何获取当前用户ID
例如,网址为www.mywebsite.com/users/20
在我的javascript文件中,我需要用户ID(20)
$.get("/users/<%= **20** %>.json", function(data)
{
}, "json");
提前感谢您的帮助。
还有其他办法吗?
答案 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)
很多选择:
如果您的当前用户对象具有ID(注意:这必须位于以.js.erb
结尾的文件中):
$.get("/users/<%= @current_user.id %>.json", function(data){...}, "json");
如果您不想使用.js.erb
文件,但仍需要在页面的某处设置值,请使用id值设置数据属性或隐藏输入。 / p>
如果你在url中有id值(就像你当前的url看起来像www.mywebsite.com/users/20
,并且你希望GET请求使用20作为值),你可以使用{{ 1}}或document.url
和一些字符串操作来获取id。
答案 4 :(得分:0)
尝试 &lt;%= escape_javascript(params [:id])%&gt; 我不完全确定escape_javascript是否必要或有帮助。