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
fzngagan
(Faizaan Gagan)
2
基本的には、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 にアクセスできるようになりました。問題は解決しました。ありがとうございます。