3

Railsを学び始めたばかりですが、理解できません。

私のPostコントローラーにはメソッドshow(説明されていません)がありませんが、コントローラーに次のように配置します。

def method_missing(name, *args)
  redirect_to posts_path
end

コントローラがアクションショーを見つけることができなかった場合、それは呼び出しmethod_missingて、その後indexメソッドにリダイレクトすると思いますが、Railsはビューをレンダリングしようとしますshow.html.erb

メソッドが見つからないのはなぜキャッチされないのですか?どうすれば使用できますmethod_missingか?

4

1 に答える 1

4

対応するテンプレートが存在する場合、Railsはコントローラーにアクションが存在する必要はありません。空のアクションを想定してテンプレートをレンダリングするだけなので、method_missingが呼び出されません。

showとにかくアクションが必要ない場合はshow.html.erb、削除するだけmethod_missingで期待どおりに機能します。

于 2012-11-03T07:49:06.820 に答える