【问题标题】:Rails - Form_tag for custom actionRails - 用于自定义操作的 Form_tag
【发布时间】:2011-07-25 18:35:31
【问题描述】:

我有一个控制器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 方法?

谢谢。

【问题讨论】:

  • 需要更多信息。此外,您的表单结构不正确。标签与输入不匹配。
  • 我编辑了更多信息。如果您还需要什么,请告诉我。
  • “我怎样才能使这个表单适用于我的 set_game 方法?” - 我不太清楚你真正想要实现什么以及你想用 set_game 动作做什么。您能否提供更多信息,您想做什么?

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


【解决方案1】:
<%= form_tag(set_game_games_path) do %>
 ...
<% end %>

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

【讨论】:

    【解决方案2】:

    这是自定义路由的示例:

      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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-19
      • 1970-01-01
      • 2011-06-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多