2010-04-15 39 views
0

我跟隨Ryan Bates,Railscast episode 52,我翻譯了代碼的相關部分以使用Rails 3.0.0.beta2。在Ryan的情況下,他只是標記項目不完整並保存時間戳。如果項目包含時間戳記,模型將返回完成列表中的項目。如何將整個項目列表保存爲真或假?

我試圖保存所有值爲true或false,具體取決於是否選中check_box_tag(使用布爾值)。我只能保存選定的項目,對或錯。如何根據是否選中複選框將整個項目列表保存爲true或false?以下是我的嘗試:

控制器邏輯:

def yardsign 
    Add.update_all(["yardsign=?", true], :id => params[:yard_ids]) 
    redirect_to adds_path 
    end 

html.erb:

<%= form_tag yardsign_adds_path, :method => :put do %> 
<% @adds.each do |add| %> 
    <td><%= check_box_tag "yard_ids[]", add.id %></td> 
    <% end %> 
<% end %> 

的routes.rb

resources :adds do 
    collection do 
    put :yardsign 
    end 
end 

終端

Started POST "/adds/yardsign" for 127.0.0.1 at 2010-04-15 19:22:49 
    Processing by AddsController#yardsign as HTML 
    Parameters: {"commit"=>"Update", "yardsigntakers"=>["1", "2"], "authenticity_token"=>"3arhsxg/Ky+0W7RNM2T3QditMTJmOnLR5CqmMYWN4Qw="} 
    User Load (0.3ms) SELECT "users".* FROM "users" WHERE ("users"."id" = 1) LIMIT 1 
    SQL (1.8ms) UPDATE "adds" SET yardsign='t' WHERE ("adds"."id" IN (1, 2)) 
Redirected to http://localhost:3000/adds 

回答

0

HTML規範說選中的複選框都沒有成功,因此,Web瀏覽器不給他們

你需要做的是這樣的check_box助手完成並添加未被檢查的項目隱藏的輸入。