ActiveStorage是Rails 5.2引入的一种文件上传和附件管理解决方案。下面是一个使用ActiveStorage的订单示例:
首先,确保你的Rails应用中已经配置好了ActiveStorage。
创建Order模型和对应的数据库表:
rails generate model Order name:string
rails db:migrate
class Order < ApplicationRecord
has_one_attached :receipt
end
<%= form_with(model: @order, local: true) do |form| %>
<%= form.label :name %>
<%= form.text_field :name %>
<%= form.label :receipt %>
<%= form.file_field :receipt %>
<%= form.submit %>
<% end %>
class OrdersController < ApplicationController
def new
@order = Order.new
end
def create
@order = Order.new(order_params)
if @order.save
redirect_to @order, notice: '订单创建成功'
else
render :new
end
end
private
def order_params
params.require(:order).permit(:name, :receipt)
end
end
订单名: <%= @order.name %>
收据: <%= image_tag @order.receipt %>
这样,你就可以在创建订单时上传一个收据文件,并在展示页面中显示出来。
注意:在使用ActiveStorage之前,确保你的应用已经安装并配置了相应的存储服务(例如Amazon S3、Google Cloud Storage等)。具体的配置步骤可以参考ActiveStorage官方文档。