我有两个模型,Project
和ProjectImage
。这两者是相关联的。
为什么如果我还没有上传任何照片,我的ProjectImage
中已有记录,但所有值都为空?我用rake db:create db:migrate
我很困惑......
<%= @project.project_images.to_json %>
给我
[{"id":null,
"project_id":null,
"project_photo_id":null,
"file_id":null,
"created_at":null,
"updated_at":null,
"photo_file_name":null,
"photo_content_type":null,
"photo_file_size":null,
"photo_updated_at":null}]
我正在使用paperclip gem
<%= simple_form_for @project, html: { multipart: true } do |f| %>
<%= file_field_tag "photos[]", multiple: true %>
<%= f.button :submit %>
<% end %>
class ProjectController < ApplicationController
def new
@project = Project.new
@project.project_images.build
end
end
你认为它的出现是@project.project_images.build
吗?
答案 0 :(得分:1)
您的编辑可识别问题:@project.project_images.build
创建一个新的未保存的ProjectImage并将其推送到@project.project_images
关系(请参阅ActiveRelation#build的定义)。因此,当您的视图呈现该关系时,它包含空记录。别担心,它实际上并不在您的数据库中!由于id
列不为空(或使用Athar mentioned等persisted?
方法),您可以确定图片未被保存。
要解决此问题,您只需从控制器中删除@project.project_images.build
行即可。它似乎没有达到目的。