Carrierwave不保存文件或在数据库中输入记录
问题描述:
我试图在我的Rails应用程序中使用Carrierwave存储上传的文件。我有一个模型保存了一个名为Episode
的(podcast)插曲的数据。每个情节应该有与该情节相关的音频文件的列upload
。要做到这一点,我创建了一个名为EpisodeUploader
像这样的上传:Carrierwave不保存文件或在数据库中输入记录
rails generate uploader Episode
注:这是一个有点混乱。我有一个名为情节型号这 有一个名为上传列,但上载被称为情节太 (这将最终使用发电机名为EpisodeUploader。
为了使我的模型使用在EpisodeUploader
我添加了一个名为upload
rails g migration add_upload_to_episodes upload:string
列然后,在我的情节模式,我登上上传
mount_uploader :upload, EpisodeUploader
在我的表单中我加入这样的文件领域:
= f.file_field :upload
现在,当我上传文件,没有错误或任何被抛出,但该文件不存储在我的磁盘,并没有数据上已写入数据库。
我在做什么错?这可能是命名的事情吗?
答
好吧,我明白了。我在搭建模型后添加了上传器。脚手架操作产生的这种方法在我Episode
模型
def episode_params
params.require(:episode).permit(:podcast_id, :name, :description)
end
我不得不补充:上传到允许则params的列表:
def episode_params
params.require(:episode).permit(:podcast_id, :name, :description, :upload)
end
答
确保您有权限写入该文件。
而且你必须确保你的carrierwave配置正确。 – ErvalhouS 2014-11-23 21:29:55