在Rails中发布值的Form_Tag问题

时间:2011-03-28 04:17:52

标签: ruby-on-rails

我的应用程序的特定控制器的路由是(我手动创建):

  scope :path => '/labor', :controller => :labor do
    get '/' => :index, :as => 'labor'
    post 'start/:work_hours' => :start, :as => 'start'
    post 'stop' => :stop, :as => 'stop'
  end 

我正在创建一个form_tag,但是我在传递已发布的值时遇到了问题。我的表格目前是:

  <%= form_tag start_path do %>
    <%= select_tag :work_hours, options_for_select([ "1", "2", "3", "4", "5", "6", "7", "8" ], "1") %>
    <%= submit_tag "#{t 'labor.start_work'}" %> 
  <% end %>

我希望这可以工作,但不幸的是,它没有,我不明白为什么。我实际上收到路由错误没有路由匹配{:controller =&gt;“labor”,:action =&gt;“start”}

为什么会发生这种情况以及如何解决这个问题,以便:从工作表中正确发布:work_hours?

1 个答案:

答案 0 :(得分:0)

你真的可以尝试

<%= form_for :start_labor do %>
    <%= select_tag :work_hours, options_for_select([ "1", "2", "3", "4", "5", "6", "7", "8" ], "1") %>
    <%= submit_tag "#{t 'labor.start_work'}" %> 
<% end %>

然后使用params[:start_labor][:work_hours]更新控制器中的数据。对我来说这很好用