0

私はRubyonRails 3.2を使用しており、簡単なテストブログアプリケーションを作成しました。投稿モデルとコメントモデルがあり、投稿has_many :commentsとコメントがありbelongs_to :postます。

ルート内:rb:

resources "posts" do
  resources "comments"
end

親投稿のページの下部にコメントを表示し、AJAXを介して新しいコメントを送信します。したがって、ユーザーが/ posts / 1 / comments/XXXにアクセスできる必要はないと思います。ただし、ルートから削除するresources "comments"と、コメント機能が機能しなくなります。ユーザーがブラウザで/posts/ 1 / comments / XXXにアクセスするのを防ぎながら、コメントAJAX機能を機能させ続けるにはどうすればよいですか?

4

1 に答える 1

3

解決策としてできることは、リクエストがxhrリクエストであるルートを調整することです。次の方法で実行できます。

# routes.rb
class OnlyAjaxRequest
  def matches?(request) 
    request.xhr?
  end
end

resources "posts" do
  resources "comments", :constraints => OnlyAjaxRequest.new
end

ルーティングの制約に関する詳細については、このブログ投稿を参照してください。

于 2012-10-04T21:42:10.733 に答える