Ruby on rails Carrierwave没有';t在数据库中保存文件或输入记录
我正在尝试在Rails应用程序中使用Carrierwave存储上传的文件。我有一个模型,它为一个叫做Ruby on rails Carrierwave没有';t在数据库中保存文件或输入记录,ruby-on-rails,ruby-on-rails-4,carrierwave,Ruby On Rails,Ruby On Rails 4,Carrierwave,我正在尝试在Rails应用程序中使用Carrierwave存储上传的文件。我有一个模型,它为一个叫做集的(播客)集保存数据。每集都应该有一列upload,用于与该集关联的音频文件。为此,我创建了一个名为eposodeuploader的上传程序,如下所示: rails generate uploader Episode = f.file_field :upload 注意:这有点混乱。我有一个名为“插曲”的模型 有一个名为upload的列,但uploader也被称为插曲 (最终将使用生成器命名为
集的(播客)集保存数据。每集都应该有一列upload
,用于与该集关联的音频文件。为此,我创建了一个名为eposodeuploader
的上传程序,如下所示:
rails generate uploader Episode
= f.file_field :upload
注意:这有点混乱。我有一个名为“插曲”的模型
有一个名为upload的列,但uploader也被称为插曲
(最终将使用生成器命名为EpisodeUploader
为了让我的模型使用epiodeuploader
我添加了一个名为upload
rails g migration add_upload_to_episodes upload:string
然后,在我的插曲模型中,我安装了上传器
mount_uploader :upload, EpisodeUploader
在我的表单中,我添加了如下文件字段:
rails generate uploader Episode
= f.file_field :upload
现在,当我上传一个文件时,不会抛出任何错误或任何东西,但该文件没有存储在我的磁盘上,也没有数据写入数据库
我做错了什么?可能是命名问题吗?确保您有编写该文件的权限。好的,我知道了。我在构建模型后添加了上载程序。构建操作在我的插曲
模型中生成了此方法
def episode_params
params.require(:episode).permit(:podcast_id, :name, :description)
end
我必须添加:上传到允许参数列表:
def episode_params
params.require(:episode).permit(:podcast_id, :name, :description, :upload)
end
您必须确保您的carrierwave配置正确。