2011-05-14 44 views
5

我有以下内容的 “index.html.erb” 文件:传递实例变量js.erb文件(导轨3/jQuery的)

<%=渲染@users%>

这使得 “_user.html.erb” 和用于在每一个用户执行某种动作输出按钮:

<%=的link_to “行动”,action_path(用户),:ID =>“#{ user.id} _action“,:remote => true)%>

我已经设置了我的用户控制器,通过查看“action.js.erb”来响应AJAX请求。

为了在部分内部对特定用户执行javascript方法,我想知道我的部分实例变量(如user.id)是如何传入或在js.erb文件中访问的,例如:

$("#{@user.id}_action").toggle(); 

回答

11

您访问您*.js.erb -files的信息,就像在你的*.html.erb -files,使用控制器声明@users或其他实例变量:

$("#<%= @user.id %>_action").toggle(); 
+0

请参阅编辑。在js.erb中声明@ user.id不会被识别。 – neon 2011-05-14 17:49:02

+0

我更新了一个例子。希望有所帮助! – Magnar 2011-05-14 17:50:51

+0

真棒。使用小编辑来使用“#”前缀声明css id。 (请在你的答案中进行编辑,它不会让我这样做)。谢谢! – neon 2011-05-14 17:57:11