2011-03-28 12 views
1

我的路線發佈值是:(i手動創建):的form_tag問題與我的應用程序的特定控制器的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 =>「labour」,:action =>「start」}

爲什麼會發生這種情況,我該如何解決它,以便work_hours正確從表單發佈?

+0

你有沒有在你的控制器中啓動'start'? – 2011-03-28 04:43:13

+0

是的,所有的處理和東西。 rspec測試在該操作上也可以正常工作。 – Spyros 2011-03-28 04:50:46

回答

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

然後iwith params[:start_labor][:work_hours]更新數據n控制器。這對我工作得很好

+0

發佈時,我收到了一條不符合路線的'/勞務'。事實上,沒有這樣的路線。是:start_labor指向start_path?這個符號看起來有點奇怪,但我可能只是不知道它可以像那樣使用:) – Spyros 2011-03-28 05:05:12

+0

Strat_labor創建一個參數散列,如'start_labor => {work_hours =>「something」}',如果你看看你的控制檯你會看到。其實這個行動應該是你的路線中的一員。嘗試添加'成員do \ n後'開始/:work_hours'=>:開始,:as =>'開始'\ n結尾' – 2011-03-28 05:10:21

+0

爲什麼不使用'資源:勞動'? – 2011-03-28 05:10:56

相關問題