我想檢查複選框是否被選中,如果是,然後更新所有記錄的特定列(update_checkbox
- 我的表中的布爾值)爲真的所有記錄。更新記錄,如果複選框被選中
其主要目的是在列中只有一個記錄可以是'真',並且當創建/編輯新記錄並且選中該複選框時,該記錄將爲真,並將另一個記錄變爲假。
在型號/ article.rb:
class Article < ActiveRecord::Base
if :update_checkbox == '1'
#find records where update_checkbox is true & update to false
Article.where(:update_checkbox => true).update_all(:update_checkbox => false)
end
end
我可以更新我的記錄不錯,但它是我在遇到問題的「如果複選框被選中」的一部分 - 目前,當我創建update_checkbox
新紀錄檢查此標誌設置爲true的行未被設置爲false。任何幫助表示讚賞!
感謝您的幫助!這工作......主要是:)但我想保持當前記錄爲真,而將所有其他人設置爲假。此外,這並不檢查複選框是否爲真/選中,因此所有記錄都將更新爲false(不是我要找的)。 – LKB
我已將'after_save'更改爲'before_save',解決了第一個問題。仍在尋找一種方法來檢查複選框是否被選中。 – LKB
@LKB不知道你需要用'true'保留現有記錄。在這種情況下,請看@索引的答案。它將通過'update_checkbox = true'保留現有記錄。 – retgoat