0

現在、アプリを Rails 4 にアップグレードし、多くの場所で RJS を使用しています。後で、RJS が削除され、prototype-rails gem から引き続き利用できることがわかったので、gem を追加して applicaton.js に含めましたが、それでも同じ問題が発生します。

ActionView::MissingTemplate (Missing template lease/update, application/update with {: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]}

サンプルコード: 古い拡張子を使用しています: ex:

def ajax_refer
 render :update do |page|
            page.replace_html  "lease_container", :partial => "/lease/property_pipeline", :locals => {:note_collection => @note, :portfolio_collection => @portfolio_collection}
end
end
my view is property_pipeline.html.erb
my application.js have

//= require prototype
//= require prototype_ujs
//= require effects
//= require dragdrop
//= require controls
//= require jquery
//= require jquery_ujs
//= require_self
//= require_tree .
4

1 に答える 1

1

:rjs含まれて:handlersおり、それは良いことですが、スニペットに他に何が欠けているかを知るのは困難です. プロトタイプレールごとに、開発構成を更新することも覚えていましたか? config.action_view.debug_rjs = trueconfig/environments/development.rb

Rails 3.1 の時点でデフォルトの JS ライブラリとして削除されたrjsと、JS レンダリングの処理方法について、関連するStackoverflow スレッドがあります。

そのスレッドによると:

コードに関しては、それが機能しない理由は、.js.erb として解釈されている rjs テンプレートであり、無効な JavaScript を生成している可能性があります。

update.js.rjsフォルダー内のをupdate.jsに変更しviews/leaseて、次の行に沿って jQuery を使用する方が簡単な場合があります。

$('#lease_container').html("<%= escape_javascript render property_pipeline %>");

これが役に立つかどうか教えてください。不足しているテンプレート呼び出しに続いて実際にレンダリングされたものを含めると役に立ちます...解釈された拡張を示します。

于 2013-12-20T22:07:51.413 に答える