如何在rails 4中使用page.replace_html

时间:2013-11-07 13:17:56

标签: ruby-on-rails ruby-on-rails-4 prototype rjs

目前我正在将我的项目从rails 3.2升级到rails 4.升级到rails 4. page.replace_html方法不起作用。

例如:

在控制器中,如果它遇到这样的代码,

  

渲染:更新do | page |

     

page.replace_html“lease_container”,:partial =>   “/ lease / property_pipeline”,:locals => {:note_collection => @note}

     

它会抛出这样的错误,

  

ActionView :: MissingTemplate(缺少模板租约/更新,   应用/更新{:locale => [:en],:formats => [:js,:html,:xml,   :html,:text,:js,:css,:ics,:csv,:png,:jpeg,:gif,:bmp,:tiff,   :mpeg,:xml,:rss,:atom,:yaml,:multipart_form,:url_encoded_form,   :json,:pdf,:zip] ,: handlers => [:erb,:builder,:raw,:ruby,:rjs]}

我怎么能解决这个问题?有什么替代方法可以用jquery做到这一点吗?

1 个答案:

答案 0 :(得分:3)

使用prototype-rails助手宝石

更好的是,重构代码以使用jQuery。 Rails现在鼓励使用UJS(Un Obtrusive JavaScript)。因此,jQuery中的确切替换语法可能并不可取。

您可以尝试这样的事情

$("#divid").html("<div>all the html goes here</div>") 

这会将<div id="divid">....</div>的内容替换为传递给.html("....")

的内容

这是jQuery documentation for .html()

这个主题有一个很好的RailsCasts Episode #205