Rails 控制器创建 Model.new 和 Model.create 之间的操作差异

2024-05-01

我正在浏览一些 Rails 3 和 4 教程,并发现了一些我想要的见解:

Model.new 和 Model.create 在创建操作方面有什么区别?我以为你确实使用了create控制器中的保存方法,例如。@post = Post.create(params[:post])但看来我错了。任何见解都非常感激。

使用 Post.new 创建操作

def new
  @post = Post.new
end

def create
  @post = Post.new(post_params)
  @post.save

  redirect_to post_path(@post)
end

def post_params
  params.require(:post).permit(:title, :body)
end

使用 Post.create 创建操作

def new
  @post = Post.new
end

def create
  @post = Post.create(post_params)
  @post.save

  redirect_to post_path(@post)
end

def post_params
  params.require(:post).permit(:title, :body)
end

我有两个问题

  • 这与 Rails 4 的更改有关吗?
  • 使用是不好的做法吗@post = Post.create(post_params)?

型号.new

以下实例化并初始化给定参数的 Post 模型:

@post = Post.new(post_params)

你必须跑save为了将您的实例保留在数据库中:

@post.save

模型.创建

下面实例化、初始化and save在数据库中,给定参数的 Post 模型:

@post = Post.create(post_params)

你不需要运行save命令,它已经内置了。

有关更多信息new here http://apidock.com/rails/ActiveRecord/Base/new/class

有关更多信息create here http://apidock.com/rails/ActiveRecord/Base/create/class/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails 控制器创建 Model.new 和 Model.create 之间的操作差异 的相关文章

随机推荐

  • Java Swing并发显示JTextArea

    我需要执行 显示从 Arraylist 到 JTextArea 的一系列事件 但是 每个事件的执行时间不同 以下是我的目标的一个简单示例 public void start ActionEvent e SwingUtilities invo
  • 读/写结构到文件 - c

    我正在用 C 语言创建一个学生数据库 我需要做的最后一件事是能够读取我创建的数据库并将其写入文件 所以我已经有了一个充满指向学生结构的指针的数组 我需要将其写入文件 一旦我写完它 我也需要能够将它读回到我的数组中 我真的不知道该怎么做 这是
  • Google Colab:为什么 CPU 比 TPU 快?

    我正在使用 Google colabTPU训练一个简单的Keras模型 删除分布式strategy并在CPU比TPU 这怎么可能 import timeit import os import tensorflow as tf from sk
  • 我什么时候应该声明一个不带 noexcept 的移动构造函数?

    该标准不会在移动构造函数上强制执行 noexcept 在什么情况下移动构造函数可以抛出异常 当你真的别无选择的时候 大多数时候你的移动构造函数应该是noexcept 它们是默认的 看这个 http www codingstandard co
  • 更改 UITextField 占位符颜色

    如何动态更改占位符颜色UITextField 这始终是相同的系统颜色 xib 编辑器中没有选项 来自文档 property 非原子 复制 NSAttributedString attributedPlaceholder 该属性默认为零 如果
  • 为什么 SwiftMailer 发送两封电子邮件?

    我通过 PHP 的 SwiftMailer 库发送电子邮件 我有这个 PHP 代码 用于从 1 个发件人向 1 个电子邮件收件人发送 1 封电子邮件 这是代码 email some email recipient sendEmail sen
  • 你能限制 TypeScript 全局类型的范围吗?

    我们的团队已经配置了 TypeScript 来使jest全球可用的类型 tsconfig json types jest testing library jest dom 这真的很好 test ts文件 但今天我意识到它也接受jest 和相
  • Python ggplot 和 ggplotly

    前 R 用户 我曾经通过 ggplotly 函数广泛组合 ggplot 和plot ly 库来显示数据 刚接触 Python 时 我看到 ggplot 库可用 但找不到与用于图形反应显示的绘图简单组合的任何内容 我想要寻找的是这样的 fro
  • Postgresql:如何从时间戳、时区字段正确创建带有时区的时间戳

    我有一个带有时间戳但没有时区的表 年 月 日 时 分 秒 以及 时区 字段 P 代表太平洋 M 代表山地 我需要创建一个 带有时区的时间戳 类型的字段 鉴于我有两个字段 有没有办法正确考虑夏令时 具体来说 时间戳 2013 11 03 01
  • 适用于 Android 的 Google Analytics API v4 不发送屏幕视图

    我已经为 google Analytics api v4 设置了所有内容 如下所示 https developers google com analytics devguides collection android v4 https de
  • 将数组大小定义为用户输入的变量合法吗?

    我认为数组的大小应该是恒定的 我在 VS 2019 中编写代码 甚至当我执行以下操作时 const int size 5 int number size 我会收到这个错误expression must have a constant val
  • 如何将父小部件焦点重定向到子小部件?

    有一个简单的类叫做FloatingPointPropertyEditor 它继承的是QWidget并包含一个QLineEdit带有浮点数验证器的实例 class FloatingPointPropertyEditor public QWid
  • move_uploaded_file() 无法打开流

    我正在尝试通过 POST 通过 Pycurl 上传文件 在接收端使用 PHP 脚本 由于某种原因 PHP 部分似乎会导致错误 我将其精简为两个简短的测试脚本 import pycurl UPLOADURL http 127 0 0 1 ne
  • ASP.NET CLR 未启用

    当我运行我的应用程序时 在新安装的 ASP Net 和 SQL Server 上出现以下错误 Execution of user code in the NET Framework is disabled Enable clr enable
  • 无法从Windows 10 cmd运行python程序

    这是我电脑上安装python的路径A software installation python并且在环境变量中的系统路径中添加了相同的路径 我的脚本存储在A python programs但是当我尝试从 Windows 命令提示符 cmd
  • Windows/C++:是否可以找到抛出具有“异常偏移”的异常的代码行

    我们的一位用户在我们的产品启动时遇到异常 她从 Windows 向我们发送了以下错误消息 Problem Event Name APPCRASH Application Name program exe Application Versio
  • 在一组行中悬停突出显示效果

    我有一张相当大的桌子 由data属性看起来像这样 table tr td td tr tr td td tr tr td td tr tr td td tr tr td td tr tr td td tr table 我事先并不知道可能的组
  • 使用 Jack 时未生成 Dagger 2 组件

    当我启用杰克编译器 https source android com source jack html在Android Studio 2 2中Dagger 2 https google github io dagger 组件未生成 Dagg
  • 防止池进程导入 __main__ 和全局变量

    我正在使用工作人员的多处理池作为更大的应用程序的一部分 由于我用它来处理大量的简单数学 所以我有一个无共享的架构 其中工作人员需要的唯一变量作为参数传递 因此 我不需要工作子进程来导入任何全局变量 我的 main 模块 或者因此 它导入的任
  • Rails 控制器创建 Model.new 和 Model.create 之间的操作差异

    我正在浏览一些 Rails 3 和 4 教程 并发现了一些我想要的见解 Model new 和 Model create 在创建操作方面有什么区别 我以为你确实使用了create控制器中的保存方法 例如 post Post create p