Comment appeler des méthodes d'un autre contrôleur
J'ai besoin pour l'appel de méthodes à partir d'un autre contrôleur. Quelle est la meilleure façon de faire? Par exemple:
catalogues_controller.rb
class Site::CataloguesController < ApplicationController
respond_to :js, :html
def index
produc_list # call method other controller
end
end
other_controller.rb
class OtherController < ApplicationController
respond_to :js, :html
def produc_list
myObj = Catalagues.find(params[:id])
render :json => myObj
end
end
l'héritage, module commun..
merci, veuillez fournir un exemple , je suis nouveau dans ruby ... merci
Une question semblable a été posée ici stackoverflow.com/questions/128450/... pour la création de modules checkout stackoverflow.com/questions/4906932/...
L'héritage signifie, que vous pourriez mettre votre méthode commune dans ApplicationController (les deux hériter de là) et de l'appeler à partir d'OtherController et le Site::CataloguesController. Vous pouvez bien sûr l'utilisation d'un parent particulier pour les deux contrôleurs s'ils partagent d'autres choses en commun.
merci, veuillez fournir un exemple , je suis nouveau dans ruby ... merci
Une question semblable a été posée ici stackoverflow.com/questions/128450/... pour la création de modules checkout stackoverflow.com/questions/4906932/...
L'héritage signifie, que vous pourriez mettre votre méthode commune dans ApplicationController (les deux hériter de là) et de l'appeler à partir d'OtherController et le Site::CataloguesController. Vous pouvez bien sûr l'utilisation d'un parent particulier pour les deux contrôleurs s'ils partagent d'autres choses en commun.
OriginalL'auteur Camilo.Orozco | 2013-02-20
Vous devez vous connecter pour publier un commentaire.
Vous pourriez mettre en œuvre un module, et l'inclure dans votre Contrôleur.
Appelons ce module "Produits d'assistance":
Et puis, dans les contrôleurs, vous devez utiliser cette méthode:
OriginalL'auteur MrYoshiji
Vous pouvez appeler l'expédition directement sur votre méthode du contrôleur. Passer une ActionDispatch::instance de Réponse et il sera rempli avec la réponse. En supposant une réponse json dans cet exemple:
OriginalL'auteur mgauthier
Si vous avez Reposant routes (et de l'accès à l'aide de méthodes qui viennent avec eux), alors vous devriez juste être capable d'utiliser redirect_to pour rediriger à toute action que vous voulez l'appeler,
OriginalL'auteur ply