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?
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