由于2个脚手架,我创建了一个投资组合,一个用于投资组合本身,另一个用于图像,由carrierwave上传
这不是我第一次这样做,但这是我第一次遇到这个问题:
def create
@multifichier = Multifichier.new(multifichier_params)
respond_to do |format|
if @multifichier.save
if params[:fichiers]
params[:fichiers].each { |f|
@multifichier.fichiers.create(titre: f)
# tried with some random strings, no difference
}
# abort @multifichier.fichiers.inspect
end
format.html { redirect_to @multifichier, notice: 'Multifichier was successfully created.' }
format.json { render :show, status: :created, location: @multifichier }
else
format.html { render :new }
format.json { render json: @multifichier.errors, status: :unprocessable_entity }
end
end
end
如果我在循环中检查@multifichier.fichiers
一次,我会得到以下内容
<ActiveRecord::Associations::CollectionProxy [#<Fichier id: 34, titre: nil, created_at: "2017-05-03 23:38:34", updated_at: "2017-05-03 23:38:34", multifichier_id: 3>
。正如您所看到的那样,titre
给出了&#39; nil&#39;,但multifichier_id
获得了属性,我无法理解为什么。
以下是我的模特:
fichier.rb 类Fichier&lt; ApplicationRecord belongs_to:multifile,optional:true #I想逐个上传图片 mount_uploader:titre,FichierUploader 端
multifichier.rb
class Multifichier < ApplicationRecord
has_many :fichiers
accepts_nested_attributes_for :fichiers
end
我错过了什么?这也是我第一次使用带有JSON的脚手架,但我不相信这是相关的。
提前感谢您,请询问您是否需要查看其他内容!
编辑1
我在阅读你的答案时意识到,我并没有告诉你我如何设置我的参数。我还用一个参数创建了另一个脚手架,但我仍然无法使其工作
def multifichier_params
params.require(:multifichier).permit(:titre, :fichiers => [:titre])
end
再一次,当我还有另外3个projects完美地工作时,我不明白为什么这不起作用