2024 年 7 月 19 日星期五

为迁移添加非 null 修饰符,默认脚本文件夹和生成器,会话生成器和更多内容!

由 vipulnsward 发布

嗨,各位,星期五快乐! Vipul 在这里,为您带来本周 Rails 的最新更新。我们深入了解一下。

添加一个基本的会话生成器
此更改添加了一个新的会话生成器,用于使用数据库跟踪会话为身份验证系统提供基本开端。

# Generate with...
bin/rails generate session

# Generated files
app/models/current.rb
app/models/user.rb
app/models/session.rb
app/controllers/sessions_controller.rb
app/views/sessions/new.html.erb
db/migrate/xxxxxxx_create_users.rb
db/migrate/xxxxxxx_create_sessions.rb

添加脚本文件夹和生成器
此请求拉动添加了一个新的 script 默认文件夹,用于保存一次性或通用脚本,如数据迁移脚本、清理脚本等。

新的脚本生成器允许我们创建这类脚本

rails generate script my_script

在生成脚本时,我们还可以指定一个文件夹

rails generate script cleanup/my_script

然后,我们可以使用运行生成的脚本

ruby script/my_script.rb

从默认的 app/ 结构中移除管道
现在 Hotwire 已成为 Rails 中的默认值,此更改从默认的 app/ 结构中删除了 channels 文件夹。在必要时使用 channel 生成器时,仍会创建该文件夹。

删除默认权限策略初始化程序
此更改删除了很少使用的默认 permissions_policy 配置文件。可以根据需要使用 permissions_policy 的文档重新添加配置。

为迁移添加非 null 修饰符
此更改为迁移添加了一个非 null 修饰符,我们现在可以使用 ! 在列类型后指定该修饰符

# Generating with...
bin/rails generate migration CreateUsers email_address:string!:uniq password_digest:string!

# Produces:
class CreateUsers < ActiveRecord::Migration[8.0]
  def change
    create_table :users do |t|
      t.string :email_address, null: false
      t.string :password_digest, null: false
      t.timestamps
    end
    add_index :users, :email_address, unique: true
  end
end

当没有定义连接时引发特定异常
此更改使我们可以更轻松地以编程方式访问有关请求的分片/角色的详细信息。新的 ConnectionNotDefined 异常提供了连接名称、分片和角色访问器,表明请求的连接详细信息。

您可以在此处查看完整的更改列表 此处
上周有 20 位贡献者 参与了 Rails 代码库!

下一次见!

订阅 以获取通过邮件发送的这些更新。