Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Carrierwave没有';t在数据库中保存文件或输入记录_Ruby On Rails_Ruby On Rails 4_Carrierwave - Fatal编程技术网

Ruby on rails Carrierwave没有';t在数据库中保存文件或输入记录

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也被称为插曲 (最终将使用生成器命名为

我正在尝试在Rails应用程序中使用Carrierwave存储上传的文件。我有一个模型,它为一个叫做
集的(播客)集保存数据。每集都应该有一列
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配置正确。