Rails - Form_tag for custom actions

I have a games controller and method:

 def index @games = Game.all end def set_game @current_game = Game.find(params[:set_game]) end 

In my opinion, I have:

 <%= form_tag("/games") do %> <% @games.each do |g| %> <%= radio_button_tag(:game_id, g.id) %> <%= label_tag(:game_name, g.name) %><br> <% end %> <%= submit_tag "Confirm" %> <% end %> 

Routes

  resources :games match 'games', :to => 'game#index' 

How can I make this form work for my set_game method?

Thanks.

+4
source share
2 answers
 <%= form_tag(set_game_games_path) do %> ... <% end %> #routes.rb resources :games do collection do get '/set_game', :as => :set_game end end 
+13
source

This is an example of a custom route:

  match "customroute" => "controller#action", :as => "customroutename" 

You can then access "customroutename_url" in your views. For example, if you want to create your own route for the set_game action, this will be

  match "setgame" => "games#set_game", :as => "setgame" 

Then you can do

 <%= form_tag setgame_url %> ... <% end %> 

You can learn more about custom routes here: http://guides.rubyonrails.org/routing.html#non-resourceful-routes

0
source

All Articles