我尝试将动作渲染的结果分配给页面上的元素。这应该是一项简单的任务,但以下声明:
$(".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") ) %>");
任何想法我做错了或者这是一个简单的rails中的错误? (3.0.7)
答案 0 :(得分:1)
这是您的应用程序中的错误。实际上,这是控制器中new
操作中的错误
答案 1 :(得分:0)
呈现动作的结果?这可能不是最好的主意。如你所说,当你使用partial时,代码可以工作,这就是你应该使用的。 这来自官方的Rails指南:
使用render with:action是一个 Rails的常见混淆源 新人。指定的操作是 用于确定哪个视图 渲染,但Rails不运行任何 该行动的代码 控制器。任何实例变量 您必须在视图中需要 在之前的行动中设置 调用渲染。
http://guides.rubyonrails.org/layouts_and_rendering.html#using-render