更新我的数据库的现有记录时出现问题。
在我看来,我有复选框。当用户点击它时,ajax调用会触发 在我的控制器中有一个这样的代码:
t = Materialtitle.find(@doc_code)
t.pub_template = params[:checked]
t.save!
问题:当我第一次点击复选框时,所有内容都会更新。但是,当我第二次点击时,它没有更新。并且在日志中我有空事务:
←[1m←[35mMaterialtitle Load (0.0ms)←[0m SELECT TOP (1) [materialtitles].* FRO
[materialtitles] WHERE [materialtitles].[id] = 181
←[1m←[36mEXECUTE (0.0ms)←[0m ←[1mBEGIN TRANSACTION←[0m
←[1m←[35mEXECUTE (0.0ms)←[0m COMMIT TRANSACTION
感谢您的帮助。
答案 0 :(得分:0)
在我需要将模型属性的状态从true更改为false的情况下,以及使用用户可操作复选框触发的ajax调用的反之,我发现最简单的方法是使用切换!强>
在您的情况下,请在控制器代码中替换以下两行:
t.pub_template = params[:checked]
t.save!
使用以下内容,它将起作用:
t.toggle!(:pub_template)
只需确保在加载视图时,您正在显示模型属性的正确,实际状态,这样用户就不会感到困惑。
我希望你觉得这很有用。