【问题标题】:How can I save an entire list of items true or false?如何保存整个项目列表是真还是假?
【发布时间】:2010-07-01 20:00:19
【问题描述】:

我正在关注 Ryan Bates,Railscast episode 52,我已经翻译了代码的相关部分以使用 Rails 3.0.0.beta2。在 Ryan 的案例中,他只是将项目标记为不完整并保存时间戳。如果一个项目包含一个时间戳,模型将返回完成列表中的项目。

我正在尝试保存 所有值 true 或 false,具体取决于是否选择了 check_box_tag(使用布尔值)。我只能保存选定的项目,对或错。如何根据是否选中复选框来保存整个项目列表对或错?以下是我的尝试:

控制器逻辑:

 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

【问题讨论】:

    标签: ruby-on-rails checkbox


    【解决方案1】:

    HTML 规范说未选中的复选框不成功,因此 Web 浏览器不会发送它们

    您需要像 check_box 助手那样做一些事情,并为未选中的项目添加一个隐藏的输入。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-09
      • 1970-01-01
      • 2020-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多