人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【Rails3】Rails3でconfig/routes.rbに設定されていないURLにアクセスすると
500のヘッダで public/500.html の内容が表示されますが
200のヘッダで public/hoge.htmlの内容が表示されるようにする方法を教えてください。

●質問者: pandeiro_jp
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● うぃんど
●150ポイント ベストアンサー

a. hogeを表示するviewを作成
b. aを表示するactionをcontrollerに追加
c. routesに「どのURLでもbを呼び出すルート」を追加

具体例
http://memo.yomukaku.net/entries/8


2 ● a-kuma3
●150ポイント

Rails3 で、404 や 500 の表示をカスタマイズするときのチュートリアルです。
http://ramblinglabs.com/blog/2012/01/rails-3-1-adding-custom-404-and-500-error-pages

200のヘッダで public/hoge.htmlの内容が表示されるようにする

ということですから、render の status は、status: 200 にする、ということになりますね。

質問を見てて思ったのですが、public/hoge.html を表示する action が既に存在してますか?
もし、そうであれば、細かい制御がしにくくなりますが、redirect_to を使う手もあります。

 respond_to do |format|
 format.all { redirect_to :action => "hoge"}
 end


他には、ActionController の rescue_action_in_public メソッドをオーバーライドする手もありそうですが、デフォルトの処理を理解しておく必要がありそうです。
http://d.hatena.ne.jp/Climber/20100527/1274942772


うぃんどさんのコメント
404は良いですが500の表示をカスタマイズしてしまうと、 本当のサーバーエラーなのか、 タダ単にURLが無いだけかの判別が付かなくなります もちろん、 管理者サイドでアクセスログを見れば判る問題ではありますが、 問題の発覚も遅れる可能性がありますので、 あまり賢い選択ではないかもしれません

a-kuma3さんのコメント
あー、言葉が足りなかったです。 リンク先のページを見て、404 を振ってる方だけ変えたらどうでしょう、というつもりでした。 回答の方も直しておいた方が良いかな。 どうもです >windofjuly さん
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ