Rails - Form_tag для пользовательских действий - PullRequest
6 голосов
/ 25 июля 2011

У меня есть контроллер games и метод:

def index

@games = Game.all

end

def set_game

@current_game = Game.find(params[:set_game])

end

На мой взгляд, у меня есть:

<%= 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 %>

Маршруты:

  resources :games

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

Как я могу заставить эту форму работать для моего set_game метода?

Спасибо.

Ответы [ 2 ]

14 голосов
/ 25 июля 2011
<%= form_tag(set_game_games_path) do %>
 ...
<% end %>

#routes.rb
resources :games do
  collection do
    get '/set_game', :as => :set_game
  end
end
0 голосов
/ 26 июля 2011

Это пример пользовательского маршрута:

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

К нему можно перейти с помощью "customroutename_url" в ваших представлениях.Например, если вы хотите создать собственный маршрут для действия set_game, это будет

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

. Тогда вы можете сделать

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

. Подробнее о пользовательских маршрутах можно прочитать здесь:http://guides.rubyonrails.org/routing.html#non-resourceful-routes

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...