Rails文件上传 #

一、Active Storage #

1.1 安装 #

bash
rails active_storage:install
rails db:migrate

1.2 模型配置 #

ruby
class User < ApplicationRecord
  has_one_attached :avatar
end

class Article < ApplicationRecord
  has_many_attached :images
end

二、文件上传 #

2.1 表单 #

erb
<%= form.file_field :avatar %>
<%= form.file_field :images, multiple: true %>

2.2 控制器 #

ruby
def update
  @user = User.find(params[:id])
  @user.avatar.attach(params[:user][:avatar])
end

三、文件显示 #

3.1 视图中使用 #

erb
<%= image_tag @user.avatar %>
<%= link_to '下载', @user.avatar, download: true %>

四、总结 #

4.1 核心要点 #

要点 说明
Active Storage Rails文件管理
has_one_attached 单文件关联
has_many_attached 多文件关联
attach 附加文件

4.2 下一步 #

现在你已经掌握了文件上传,接下来让我们学习 复杂表单,深入了解Rails的高级表单功能!

最后更新:2026-03-28