将本地rails变量传递给javascript到partial

时间:2012-09-09 19:06:26

标签: ruby-on-rails-3

我放弃了我的搜索,我通常会尝试自己解决这些问题,但我正在努力奋斗,我只是想让它发挥作用

我在下面看到了link_to,其中@puser是我正在查看的个人资料的用户。

<%= link_to 'Request', new_or_edit_relationship_path(nil), :remote => true, :locals => { :puser => @puser} %>

这反过来调用new_relationship_path,这是一个.js.erb文件,见下面的

alert("<%= escape_javascript(puser.id) %>")

为什么这不起作用!?它说puser变量或方法是未定义的。如果我只是在当地人中渲染部分传球而不是,那么这种方式非常有效。 Javascript不想玩得很好

任何人都可以帮忙解释为什么我或程序是愚蠢的吗?

1 个答案:

答案 0 :(得分:1)

当您link_to作为remote时,用户在点击链接时会启动一个全新的请求。因此传递local对新请求没有任何意义。 (local在新请求中不再存在。)

因此,为了使@puser存在于新请求中,您需要通过URL传递id @puser {无论您为{{1}进行了什么}})。新请求需要通过new_or_edit_relationship_path查找puser,然后才能在JS id中使用它。

希望这有助于并且比泥浆更清晰。