呈现 html.erb 文件时未定义的方法"格式"



Im 使用 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

我做错了什么?

你需要使用 :p artial not :action

<%= escape_javascript(render :partial => "materials/change_prize", :locals => { :xxxx => @xxxx }) %>

注意:xxxx 是如果您需要将对象传递给部分

部分必须以下划线开头。因此,请将您的文件名重命名为"materials/change_prize.html.erb"为"materials/_change_prize.html.erb"。但是请注意,当通过渲染调用调用它时,您引用的文件不带下划线。

$("#content").html("<%= escape_javascript(render(:action => 'materials/change_prize.html.erb')) %>");

文件名 : app/views/materials/_change_prize.html.erb

相关内容

  • 没有找到相关文章

最新更新