Rails - 用于自定义操作的Form_tag

时间:2011-07-25 18:35:32

标签: ruby-on-rails ruby-on-rails-3 forms

我有一个控制器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 个答案:

答案 0 :(得分:14)

<%= form_tag(set_game_games_path) do %>
 ...
<% end %>

#routes.rb
resources :games do
  collection do
    get '/set_game', :as => :set_game
  end
end

答案 1 :(得分:0)

这是自定义路线的一个例子:

  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