2024年7月19日,星期五

为迁移添加非空修饰符、默认脚本文件夹和生成器、sessions 生成器以及更多!

由 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/结构中删除channels
现在Hotwire已成为Rails的默认设置,此更改从默认的app/结构中删除了channels文件夹。如果需要,在使用channel生成器时,该文件夹仍然会被创建。

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

为迁移添加非空修饰符
此更改为迁移添加了一个非空修饰符,现在可以使用列类型后面的!来指定。

# 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代码库做出了贡献!

下次再见!

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