【问题标题】:Difference between modelname.new and modelname.create in rails? [duplicate]rails中modelname.new和modelname.create之间的区别? [复制]
【发布时间】:2015-07-23 22:22:15
【问题描述】:

当我使用 Rails 控制台时,我可以输入:

Paper.new(name: "deva", body: "testing")
Paper.create(name: "deva", body: "testing")

这似乎是相同的结果。 .new 和 .create 到底有什么区别?

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    aa = Paper.new(名称:“deva”,正文:“测试”) 在上述情况下,您必须执行 .save ,如果是有效数据,它只会为该记录生成 id,否则它会回滚并且不存储在数据库中。

    您还可以在此处添加更多数据表中的字段,例如 aa.contact_no = "1234" aa.保存

    Paper.create(name: "deva",body: "testing") 在这种情况下,它将尝试同时创建记录并通过验证。

    【讨论】:

    • 当我添加像 aa.contact_no = "1234" 这样的数据时,它会将数据存储在 Paper 数据库中吗?
    • 如果它在表中有该数据字段。或者之后你必须做 aa.save
    【解决方案2】:

    new只初始化对象,不将对象存入数据库

    create 初始化并在满足所有验证时保存它。

    如需帮助,请参阅:http://apidock.com/rails/ActiveRecord/Base/create/class

    【讨论】:

    • 如果我们使用 .new 方法我们想使用 .save 方法将数据存储到数据库中,对吗?
    • 是的,您必须在该对象上显式调用 .save 才能保存它。
    猜你喜欢
    • 1970-01-01
    • 2010-11-03
    • 2014-11-01
    • 2013-07-01
    • 1970-01-01
    • 2012-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多