我放弃了我的搜索,我通常会尝试自己解决这些问题,但我正在努力奋斗,我只是想让它发挥作用
我在下面看到了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不想玩得很好
任何人都可以帮忙解释为什么我或程序是愚蠢的吗?
答案 0 :(得分:1)
当您link_to
作为remote
时,用户在点击链接时会启动一个全新的请求。因此传递local
对新请求没有任何意义。 (local
在新请求中不再存在。)
因此,为了使@puser
存在于新请求中,您需要通过URL传递id
@puser
{无论您为{{1}进行了什么}})。新请求需要通过new_or_edit_relationship_path
查找puser
,然后才能在JS id
中使用它。
希望这有助于并且比泥浆更清晰。