質問: CakePHP2のコードを読んでいるのですが,CakePHP2では,ControllerにActionを追加するとそのままroutes.phpに設定しなくても:model/:actionでアクセスできてしまうのでしょうか? というのも Routeer::$routesで確認したところ,設定が存在しなくてもactionを実行できるurlがあり, railsだと明示的にresourcesメソッドを使って,ルートを自動生成する場合でも設定が必要なので同じ感覚だと思っていたらハマってしまいました。 defaultsのrouter.phpの設定を消すことで対処できると書いてあったのですが,デフォルトであってもパスが通ってるのが確認できないのは思わぬところにパスが通っていて結構まずいことが起きそうだと思うのですが, みなさんどのように対処されるのでしょうか。 よろしくお願いいたします。
回答: Cakephpではroutes.phpに設定がなくてもコントローラにpublicなメソッド(アクション)を追加すると自動的にルーティングしてくれます。自分はルーティングしてほしくない場合、publicにしないでprivateにしています。 なお、:model/:actionではなく:controller/:actionだと思います。