1

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

我在下面看到了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不想玩得很好

谁能帮助解释为什么我或程序很愚蠢?

4

1 回答 1

1

当您执行link_toasremote时,用户在单击链接时将开始一个全新的请求。因此,传递 alocal对新请求没有任何意义。(local在新请求中不再存在。)

因此,为了@puser在新请求中存在 ,您需要通过 URL传递idfor (无论您做什么)。新的请求需要通过那个来查找,然后才能在JS中使用。@pusernew_or_edit_relationship_pathpuseridalert()

希望能有所帮助,并且比泥浆更清晰。

于 2012-09-09T19:14:39.250 回答