【问题标题】:when to use new and create rails controller何时使用 new 和创建 rails 控制器
【发布时间】:2014-12-03 00:34:04
【问题描述】:

这是一个非常简单的问题,但我对何时应该在控制器中使用 .new 和 .create 感到困惑。我想我真正要问的是.new 的用途是什么,.create 的用途是什么?谢谢。

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    来自ActiveRecord::Base 文档:

    create(attributes = nil) {|object| ...}

    如果验证通过,则创建一个对象(或多个对象)并将其保存到数据库中。无论对象是否成功保存到数据库,都会返回结果对象。

    new(attributes = nil) {|self if block_given?| ...}

    新对象可以实例化为空(不传递构造参数)或预先设置属性但尚未保存(传递具有与关联表列名匹配的键名的哈希)。在这两种情况下,有效的属性键都由关联表的列名决定——因此您不能拥有不属于表列的属性。

    所以create 实例化新对象,对其进行验证,然后将其保存到数据库中。而new 仅创建本地对象,但不会尝试验证或将其保存到数据库。

    来自https://stackoverflow.com/a/2472416/634120

    【讨论】:

    • 谢谢,但我很困惑我什么时候想使用新的?你能举个例子吗?
    • 如果你不想立即保存,你可以先做something = Something.new 然后if something.save... 或者如果你以后没有一些属性,你可以创建它然后设置更多属性,例如something.property = variable,然后是 save。只取决于你在做什么。 new 可以派上用场,但 create 可能是更常用的。
    • 完美的解释。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多