【问题标题】:Rails 3 best practice to modify a boolean attribute?Rails 3 修改布尔属性的最佳实践?
【发布时间】:2011-01-27 17:01:59
【问题描述】:

切换布尔属性(例如取消/发布文章)的最佳做法是什么?

对于模特方面,我看到Object.update_attribute(:only_one_field, 'my_value') 最适合这项工作,而不是update_attributes

怎么样

  1. 视图(使用链接、表单中的提交按钮、其他想法?)和
  2. Controller 端?

【问题讨论】:

    标签: ruby-on-rails-3 boolean


    【解决方案1】:
    1. 视图通常使用表单来更新模型。 form_for helper 让这变得非常简单。

    2. 如果您使用标准更新操作(您的控制器继承自 InheritedResources::Base),那么您的更新!你的控制器中的方法应该可以很好地处理这个问题。

    我实际上建议不要使用Model.update_attribute(:published, value),除非你知道这个调用会绕过你的模型的验证。这通常是为什么表单只是发布到控制器中的更新或创建方法的原因——默认情况下,这些方法会经历整个 ActiveRecord 生命周期,也会调用您的验证。如果你有理由绕过它们,那么一定要使用update_attribute

    【讨论】:

    • 是的,知道绕过验证:Rails API 说update_attribute 更新 [...] 并保存记录而无需通过正常的验证过程。这对于现有记录上的布尔标志特别有用。这就是为什么我认为它最适合这种情况。
    猜你喜欢
    • 2023-03-26
    • 1970-01-01
    • 2012-01-01
    • 2015-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多