Come accedere agli URL definiti in un plugin pubblicamente?

Ho aggiunto il codice sottostante nel file plugin.rb.

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

Riesco a utilizzare l’URL “ratings”, ovvero /rating/getratings, nelle chiamate AJAX. Tuttavia, quando provo a utilizzare questo URL con il nome di dominio t2.metastudio.org, ad esempio https://t2.metastudio.org/rating/getratings, Discourse restituisce il seguente messaggio:

Oops! That page doesn’t exist or you may have to login to see it!

Ad esempio, riesco ad accedere ai dati delle categorie utilizzando l’URL https://t2.metastudio.org/categories.json. Allo stesso modo, vorrei poter accedere agli URL definiti dal plugin.

Potreste spiegarmi come definire gli URL in un plugin in modo che siano accessibili pubblicamente?

1 Mi Piace

In pratica, devi studiare come funzionano le rotte e i motori di Rails. Le rotte mappano gli URL alle azioni dei controller di Rails. Consulta anche questa guida: è il mio tutorial preferito su Discourse. How to create a Discourse plugin – kleinfreund.de

1 Mi Piace

Sono in grado di accedere al nuovo URL GET definito, ovvero “/getbadges” => “categories#getBadges”

Ho definito l’URL GET “/getbadges” => “categories#getBadges” nel file routes.rb

e di seguito il metodo getBadges nel file categories_controller.rb

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

Ho eseguito un’istanza locale di Discourse e ho provato ad accedere all’URL GET definito http://localhost:9292/getbadges.
Riesco ad accedere a questo URL GET, ma ho fatto la stessa cosa nel plugin GitHub - siddhudhangar/discourse-ratings · GitHub e lì non funziona. Puoi aiutarmi a risolvere il problema?

Di seguito riporto il mio URL GitHub, dove puoi controllare il mio codice e farmi sapere se ho commesso errori.

Posso accedere a tutti gli URL GET che ho definito nel plugin. Il problema è stato risolto. Grazie.