2011-07-25 29 views
4

我有一个控制器games和方法:导轨 - 的form_tag定制操作

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方法?

谢谢。

+0

将需要更多信息。此外,您的表单结构不正确。标签与输入不匹配。 – efoo

+0

我编辑了更多信息。如果你需要别的东西告诉我。 –

+0

“我如何使这个表单适用于我的set_game方法?” - 我不清楚你真正想要达到什么目的,你想用set_game动作做什么。你能提供更多的信息,你想做什么? – Svilen

回答

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

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

感谢您的回答。但它给了我错误。 –

+0

我已经更新了答案。 –

+0

将'get'改为'post'并且它可以工作。 –

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