2011-05-05 46 views
0

我尝试将渲染动作的结果分配给页面上的元素。这应该是一件容易的事,但下面的语句:在js.erb文件中使用渲染(:action =>“action”)

$(".box:first").after("<%= escape_javascript(render :action => "new") %>"); 

将导致以下错误消息:

ActionView::Template::Error (undefined method `formats' for nil:NilClass): 
    1: $(".box:first").after("<%= escape_javascript(render(:action => "new")) %>"); 
  • 相同的代码工作,如果我尝试使用渲染部分:部分= >“new”(假设存在给定名称的部分)
  • 如果我更改':action'fe,错误消息将会相同到':foobar'。

任何想法我做错了或这是一个简单的轨道错误? (3.0.7)

回答

1

这是您的应用程序中的一个错误。其实这是你的new控制器中的一个错误

0

动作渲染的结果?这可能不是最好的主意。正如你所说的,代码在你使用partial的时候工作,这就是你应该使用的。 这是来自官方的Rails指南:

使用渲染:行动是混乱的为Rails 新人一个 频繁的来源。指定的操作是 用于确定要渲染哪个视图,但Rails不会在 控制器中运行该操作的代码中的任何一个 。在视图中需要的任何实例变量 必须在 调用呈现之前在当前操作中设置的 。

http://guides.rubyonrails.org/layouts_and_rendering.html#using-render

+0

它不应该运行任何代码!它应该为给定的操作呈现视图。 – Freya 2011-05-10 09:22:49

相关问题