我使用的是Rails 3.0.3和ruby 1.8.7
我想渲染materials/change_prize.js.erb文件中的/materials/change_prize.html.erb。
change_prize.js.erb:
$("#content").html("<%= escape_javascript(render(:action => 'materials/change_prize.html.erb')) %>"); 材质控制器:
def change_prize
@material = Material.find(params[:id])
respond_to do |format|
format.js
format.html
end
end routes.rb:
resources :materials do
member do
get 'change_prize'
post 'change_prize'
end
end但是当我加载js文件时,我得到了这个错误:
undefined method `formats' for nil:NilClass我做错了什么?
发布于 2011-05-10 15:17:31
您需要使用:partial not :action
<%= escape_javascript(render :partial => "materials/change_prize", :locals => { :xxxx => @xxxx }) %>注:xxxx是指需要将对象传递给部分
发布于 2011-05-10 16:19:13
分音必须以下划线开头。因此,将文件名重命名为"materials/change_prize.html.erb“,将其重命名为"materials/_change_prize.html.erb”。但是,请注意,当通过render调用调用它时,引用的文件不带下划线。
$("#content").html("<%= escape_javascript(render(:action => 'materials/change_prize.html.erb')) %>");文件名: app/views/materials/_change_prize.html.erb
https://stackoverflow.com/questions/5946398
复制相似问题