【发布时间】:2018-11-02 04:18:23
【问题描述】:
我正在处理一个需要Location 模型上的ActiveStorage has_many_attached :photos 情况的项目。
我在下面设置了代码,但是在尝试上传表单时,我收到以下错误:
ActiveSupport::MessageVerifier::InvalidSignature in
LocationsController#attach_photo
这是将文件“添加”到特定父记录(即:Location 记录)的附件集中的方法吗?
Location模特
class Location < ApplicationRecord
...
has_many_attached :photos
...
end
位置控制器
class LocationsController < ApplicationController
...
def attach_photo
@location = Location.find(params[:id])
@location.photos.attach(params[:photo])
redirect_to location_path(@location)
end
...
end
查看
<%= form_tag attach_photo_location_path(@location) do %>
<%= label_tag :photo %>
<%= file_field_tag :photo %>
<%= submit_tag "Upload" %>
<% end %>
查看
resources :locations do
member do
post :attach_photo
end
end
【问题讨论】:
-
我最近使用了 ActiveStorage 的直接上传功能。我喜欢这种方法的地方在于我不必编写任何代码来处理实际上传本身,Rails 为我完成了。你是否也采用了这种方法?请参阅此处的相关指南并让我知道:edgeguides.rubyonrails.org/… - 即使文档中提到了上传到云端,它也适用于本地存储的文件。
标签: ruby-on-rails ruby rails-activestorage