3 votes

Ruby on Rails - méthode de contrôleur indépendant pour les pages statiques

En fait, je veux utiliser une méthode de contrôleur simple sans paramètres :

def create_message
   @a = Message.create(:body => "Hello")
   @a.save
   redirect_to messages_path
end

mais je suis en train d'effectuer un routage à partir de la page d'accueil, du contrôleur de pages :

def home
end

Je n'arrive pas à savoir ce qu'il faut écrire dans le fichier des itinéraires, j'ai presque tout essayé, y compris, mais sans s'y limiter :

resources :pages do
  collection do
   get :create_message
  end
end

Vues :

<%= link_to "Create Message", create_message_pages_path, class:"btn btn-primary"%>

Erreur :

The action 'create_message' could not be found for PagesController

0voto

meshin Points 358

Vous pouvez créer un itinéraire personnalisé pour create_message comme ceci

#routes.rb    
get 'create_message' => 'pages#create_message', as: 'create_message'

Entonces link_to serait :

#view
<%= link_to "Create Message", create_message_path, class:"btn btn-primary"%>

0voto

harika Points 68

J'ai rencontré ce problème une fois, dans mon cas c'est la définition de l'action dans le bloc privé du contrôleur qui a donné l'erreur "The Action could not be found error" (l'action n'a pas pu être trouvée). D'après votre question, je vois qu'il n'y a pas de problème à définir des routes et à les utiliser dans le fichier de vue. Veuillez vérifier si l'action create_message est définie dans le bloc privé du fichier pages_controller.rb. J'espère que cela vous aidera.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X