2009-06-13 16 views
0

rails 1.2.3からrails 2.0.2にアプリをアップグレードしたばかりです(最初は2.3.2を試して失敗しました)。私はいくつかのプラグインを調整しなければならなかったが、全体的にスムーズに進んだ。つまり、私のフラッシュが動作していないことがわかるまで。だから私は、当時1.2.3にダウングレードし、まだ次のエラーが表示されます。私は、最初のビューRailsのフラッシュで引数が間違っている(0の場合2)エラー

<%= render :partial => "flash_msg", :object => flash %> 

にflash_msgテンプレートをフラッシュを呼び出すどこから来る

ActionView::TemplateError (wrong number of arguments (0 for 2)) 

は次のとおりです。

<% if flash[:notice] %> 
    <div class="notice"><%= flash[:notice] %></div> 
<% elsif flash[:warning] %> 
    <div class="warning"><%= flash[:warning] %></div> 
<% end %> 

完全なトレースは次のとおりです。

ActionView::TemplateError (wrong number of arguments (0 for 2)) on line #53 of layouts/store.rhtml: 
50: 
51:    <div class="col-left"> 
52:     
53:     <%= render :partial => "user/flash_msg", :object => flash %> 
54:   
app/views/layouts/store.rhtml:53:in `flash' 
app/views/layouts/store.rhtml:53:in `_run_erb_47app47views47layouts47store46rhtml' 
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_view/base.rb:637:in `send' 
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_view/base.rb:637:in `compile_and_render_template' 
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_view/base.rb:365:in `render_template' 
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_view/base.rb:316:in `render_file' 
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/layout.rb:268:in `render_without_benchmark' 
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/benchmarking.rb:51:in `render' 
/opt/local/lib/ruby/1.8/benchmark.rb:293:in `measure' 
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/benchmarking.rb:51:in `render' 
app/controllers/store_controller.rb:75:in `browse' 
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/base.rb:1158:in `send' 
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/base.rb:1158:in `perform_action_without_filters' 
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/filters.rb:697:in `call_filters' 
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/filters.rb:689:in `perform_action_without_benchmark' 
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue' 
/opt/local/lib/ruby/1.8/benchmark.rb:293:in `measure' 
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue' 
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/rescue.rb:199:in `perform_action_without_caching' 
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/caching.rb:678:in `perform_action' 
/opt/local/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/connection_adapters/abstract/query_cache.rb:33:in `cache' 
/opt/local/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/query_cache.rb:8:in `cache' 
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/caching.rb:677:in `perform_action' 
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/base.rb:524:in `send' 
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/base.rb:524:in `process_without_filters' 
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/filters.rb:685:in `process_without_session_management_support' 
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/session_management.rb:123:in `process' 
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/base.rb:388:in `process' 
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/dispatcher.rb:171:in `handle_request' 
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/dispatcher.rb:115:in `dispatch' 
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/dispatcher.rb:126:in `dispatch_cgi' 
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/dispatcher.rb:9:in `dispatch' 
/opt/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/rails.rb:78:in `process' 
/opt/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/rails.rb:76:in `synchronize' 
/opt/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/rails.rb:76:in `process' 
/opt/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:618:in `process_client' 
/opt/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:617:in `each' 
/opt/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:617:in `process_client' 
/opt/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:736:in `run' 
/opt/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:736:in `initialize' 
/opt/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:736:in `new' 
/opt/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:736:in `run' 
/opt/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:720:in `initialize' 
/opt/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:720:in `new' 
/opt/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:720:in `run' 
/opt/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/configurator.rb:271:in `run' 
/opt/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/configurator.rb:270:in `each' 
/opt/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/configurator.rb:270:in `run' 
/opt/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/bin/mongrel_rails:127:in `run' 
/opt/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/command.rb:211:in `run' 
/opt/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/bin/mongrel_rails:243 
/opt/local/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:489:in `load' 
/opt/local/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:489:in `load' 
/opt/local/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:342:in `new_constants_in' 
/opt/local/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:489:in `load' 
/opt/local/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/commands/servers/mongrel.rb:64 
/opt/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' 
/opt/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' 
/opt/local/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:496:in `require' 
/opt/local/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:342:in `new_constants_in' 
/opt/local/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:496:in `require' 
/opt/local/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/commands/server.rb:39 
/opt/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' 
/opt/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' 
script/server:3 
+0

@Mike:Rails 1をRails 2に移行する方法を教えて、どんな文書も共有できますか?私はたくさんのことを尋ねましたが、アップグレーディングの方法は見つけられませんでした。私を助けてください。 – Rubyist

答えて

0

":object => flash"を削除してください。私はあなたの部分は、それを渡すことなくフラッシュにアクセスできると思う:オブジェクト。

0

私はそれを行うとエラーがちょうど部分flash_msgに移動:

wrong number of arguments (0 for 2) 

抽出されたソース(ライン#周り1):

1: <% if flash[:notice] %> 
2: <div class="notice"><%= flash[:notice] %></div> 
3: <% elsif flash[:warning] %> 
4: <div class="warning"><%= flash[:warning] %></div> 
+0

あなたのフラッシュオブジェクトは何ですか?たぶん "flash.class"を試して、それが返すものを見てください。 – klew

+0

ところで、あなたのエラーは奇妙に見えます。私はあなたのコードから完全に<%= render:partial ....%>行を削除しようとし、まだ動作しているかどうかを調べます。もしそうでなければ、あなたは何が起こっているのかを見つけるために他の場所を調べるべきです。 – klew

1

一つの可能​​性は何か(または誰かが)かもしれないということです既定のフラッシュ動作をオーバーライドしているflashメソッドを定義しました。私。フラッシュメソッドが定義されていて、2つのパラメーターをとり、flash[:notice]の場合はflashメソッドが呼び出され、失敗しています。

0

もう少し研究を重ねると、ビューをレンダリングするとすぐにフラッシュが動作しなくなることがわかりました。例えば、コントローラ戻りを通して、flash.class:

ActionController::Flash::FlashHash 

しかし、すぐに私はビューでflash.classを取得しようとして、私は上記と同じエラーを取得します。

私は2つの引数を与えても、 "String"を返します。たとえば:

flash(nil, nil).class = String 

これは誰にも役に立ちますか?

1

@Shadwell、あなたは間違いなしでした! 2+が好きではない「フラッシュ」という名前のビューヘルパー関数がありました。

私は、Rails 1.2.3で "flash"という名前のヘルパー関数がフラッシュハッシュをオーバーライドしないことを知りました。 Rails 2以降ではそれが実現します。

関連する問題