我目前正在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
答案 0 :(得分:0)
对不起,我无法发表评论,因此我将尝试作为答案...
您是否生成了图片上传器?
您是否在模型中添加了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