【发布时间】:2012-04-15 10:50:19
【问题描述】:
我有一个带有关注/取消关注按钮的 Rails 3 应用程序。
_follow.html.erb 和 _unfollow.html.erb 表格在控制器 A 中。控制器B 具有实际的创建和销毁方法(它是has_many :through 关系的中心)。因此,与关注和取消关注关联的create.js.erb和destroy.js.erb位于控制器B的视图文件夹中。
AJAX 代码如下所示:
$("#followform").html("<%= escape_javascript(render 'A/follow') %>")
当我将render A/follow 替换为<p>Testing</p> 之类的东西时,该代码有效,但无法使用上面的代码呈现部分。
难道不能以这种方式从外部控制器渲染视图吗?我检查了Rails Guide,他们似乎暗示确实如此。那么,有人知道这里的问题吗?
非常感谢任何帮助!!!
【问题讨论】:
-
检查你的 JS 错误控制台,看看你是否得到了错误的响应。 (Chrome 中的“网络”很棒。我听说 Firebug 也有一个网络监视器)
-
是的,在我单击按钮后它立即显示“内部服务器错误 500”,这似乎表明它无法找到该部分。但是,如果它在那里(并且按钮的功能正常工作),为什么会发生这种情况?
-
您使用的是哪个控制台?如果您在 Chrome 中单击响应,然后单击预览选项卡,您可以看到实际错误。
-
嗯。取消关注时显示
Called id for nil...,关注时显示undefined methodmodel_name' for NilClass:Class`。但是该按钮仍然有效,因为当我刷新页面时,它会正确显示,就好像我成功关注或取消关注一样。那么,这两个错误指的是什么? -
加上你发送的
params
标签: ruby-on-rails ruby-on-rails-3 jquery