プラグインで定義されたURLにパブリックにアクセスする方法は?

plugin.rb ファイルに以下のコードを追加しました。

  DiscourseRatings::Engine.routes.draw do
    post "/rate" => "rating#rate"
    post "/remove" => "rating#remove"
    get '/getratings' => 'rating#getRatings'
  end

AJAX 呼び出しでは /rating/getratings という ratings URL を使用できています。しかし、t2.metastudio.org ドメイン名でこの URL(例:https://t2.metastudio.org/rating/getratings)を使用すると、Discourse は以下のように表示します。

おっと!そのページは存在しないか、表示するにはログインが必要なようです!

例えば、https://t2.metastudio.org/categories.json という URL を使用してカテゴリデータを取得できます。同様に、プラグインの get URL にアクセスしたいと考えています。

公開アクセス可能な URL をプラグインで定義する方法を教えてください。

「いいね!」 1

基本的には、Rails のルートとエンジンの仕組みについて調べる必要があります。ルートは URL を Rails コントローラーのアクションにマッピングします。また、こちらのガイドも参照してください。これは私が最も気に入っている Discourse 入門チュートリアルです。How to create a Discourse plugin – kleinfreund.de

「いいね!」 1

新しく定義した get URL “/getbadges” => “categories#getBadges” にアクセスできることを確認しました。

routes.rb ファイルに get “/getbadges” => “categories#getBadges” という GET URL を定義しました。

また、categories_controller.rb ファイルには以下の getBadges メソッドを記述しています。

def getBadges
	json_data = {"name":"siddhu"}
	render json: json_data
end

ローカルの Discourse インスタンスを実行し、定義した GET URL http://localhost:9292/getbadges にアクセスを試みました。
この GET URL にはアクセスできましたが、GitHub - siddhudhangar/discourse-ratings · GitHub プラグインで同じ操作を行っても動作しません。この問題の解決にご協力いただけますでしょうか?

以下に私の GitHub URL を記載します。コードを確認し、誤りがあるかどうかをご教示ください。

プラグインで定義したすべての GET URL にアクセスできるようになりました。問題は解決しました。ありがとうございます。