2010-12-08 7 views
0

notesモデルがあります。このモデルはusersモデルと多対多の関係にあります。 notesコントローラでtemp_path作用を指すフォームを送信しようとすると奇妙なレールの動作

<form id='note_form' method="post" action="/notes/temp_path" > 
    <input type="hidden" name="authenticity_token" value="<%= form_authenticity_token %>" />   
    <input type="text" size="30" name="start_date" id="start_date"> 
</form> 

notesコントローラのインデックスビューでは、私は、この形態を有します。何らかの理由で、このフォームが提出されたときに、temp_pathアクションでコードを実行する代わりに、Railsは特定のノートをロードしようとしていますが、できないのでインデックスにリダイレクトします。

Started POST "/notes/temp_path" for 127.0.0.1 at 2010-12-08 22:08:25 +1000 
DEPRECATION WARNING: Setting filter_parameter_logging in ActionController is deprecated and has no longer effect, please set 'config.filter_parameters' in config/application.rb instead. (called from <class:ApplicationController> at /Users/ben/rails_projects/note_prog/app/controllers/application_controller.rb:6) 
    Processing by NotesController#temp_path as HTML 
    Parameters: {"authenticity_token"=>"Ck6NmmYO86rvJSEsiqpIMkcaiErEhV7s/XMzjka15AI="} 
    User Load (0.3ms) SELECT "users".* FROM "users" WHERE ("users"."id" = 56) LIMIT 1 
    UserNote Load (0.2ms) SELECT "user_notes".* FROM "user_notes" WHERE ("user_notes"."note_id" = 0) 
Redirected to http://localhost:3000/notes 

私はかなりWHERE ("user_notes"."note_id" = 0)ビットが問題を引き起こしていると確信しています。しかし、なぜこれが行われているのか分かりません。その上の行に基づいて、User Load (0.3ms) SELECT "users".* ...は、それがRailsの舞台裏のようだと思われます。 temp_pathアクションのどこにも、既存のノートをロードする必要はありません。どうすればこれをやめることができますか?私はRails 3.0.1を使用しています。読んでくれてありがとう。

答えて

1

コントローラのコードを表示する必要があります。そこに「redirect_to」のステートメントがありますか?どんな条件で?

おそらく、あなたのコントローラに、おそらくApplicationControllerのいくつかのフィルタがありますか?廃止予定の警告から、コードがいくつかあるかもしれません。

関連する問題