Я следую за Райаном Бейтсом, Railscast, эпизод 52 , и я перевел соответствующие части кода для работы с Rails 3.0.0.beta2. В случае Райана он просто помечает элементы как неполные и сохраняет временную метку. Если элемент содержит метку времени, модель возвращает элемент в завершенном списке.
Я пытаюсь сохранить ВСЕ значения true или false , в зависимости от того, выбран флажок check_box_tag или нет (с использованием логического значения). Я могу сохранить ТОЛЬКО выбранные элементы, true или false. Как сохранить весь список элементов 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