Railsでajax送信でポップアップを表示する場合、
通常は、*.js.erb などが読み込まれるのですが、 ページ内のリンクやボタンではなく、 URLを直打ちなどした場合にControllerが通常のリクエスト通り、 *.html.rbファイルを読み込んでしまい MissingTemplateになってしまうといった場合があると思います。
これを避けるには Ajaxのリクエスト → 通常通り それ以外 → 元のページにリダイレクト のようにするのが有効です。
class ExamplesController < ApplicationController
def index
unless request.xhr?
redirect_to [ 元のページ ]
end
end
end
コードでは、 以下でAjaxリクエストかどうか判定しています。
request.xhr?
ちなみにPOST/GETの判定は
request.get?
request.post?
でできます。