ruby-on-rails - 在 Rails 中使用 html 表单上传图片
问题描述
我目前正在使用 rails 上传图片,但遇到了一些问题。我有一个创建任务的表单,并有一个用于上传图像的列。但是,当我检查终端时,表单没有在参数中发送图像,所以每当我创建一个新对象时,它都不包含图像。我正在使用carrierwave gem
有人帮助我吗?
我是新手,对 Ruby 表单的使用很困惑,所以我现在倾向于坚持使用 HTML 标签。
查看(我没有包含所有代码,否则很难阅读)
<form id="new_form" name="task" role="form" enctype="multipart/form-data">
<input type="file" name="avatar" class="form-control" id="avatar" accept="image/*">
<input type="submit" class="btn btn-success" id="submit">
</form>
控制器
def create
@item = item.new(name: params[:name],
avatar: params[:avatar])
@item.save
end
解决方案
对不起,我不能发表评论,所以我会尝试作为答案...您是否生成了图像上传器?你mount_uploaders :images, ImageUploader
在你的模型中添加了吗?你的表格呢?你能告诉我们你写的方式吗?我相信它应该看起来像这样
# View
<%= form_for @task, html: { multipart: true } do |f| %>
<%= f.text_field :some_title %>
<%= f.file_field :images %>
<%= f.submit "Create" %>
<% end %>
# Controller
## Action
def create
@item = Item.new(item_params)
params[:item]['avatar'].each do |avatar|
@item.avatar = avatar
@item.save
end
end
private
def items_params
params.require(:item).permit(:title, {avatars: []})
end
推荐阅读
- google-cloud-platform - 什么时候可以找到 Vertex AI Batch Prediction 作业的日志?
- google-app-engine - 将 GTM 服务器容器与 GCP 连接(AppEngine)
- laravel - 如何在 laravel 8 中编写 if else 语句
- python - 使用 python numpy 提取原始转储文件数据信息
- r - 无法在辅助轴上绘制折线图
- javascript - 为什么我的tone.js 样本出现多个404 File not found 错误?
- typescript - 如何在类型级别断言一个类型不是任何类型?
- servicestack - ServiceStack - 检查单元测试中的 WSDL 更改
- spring - Shedlock 仅适用于一个实例,而不适用于多个实例
- c# - 依赖注入中的循环引用