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