无法识别formobject中的照片模型

为了解决Shrine image preview doesn't appear in nested form 我想在嵌套表单对象中使用照片模型,

貌似,导轨无法识别嵌套的窗体对象中的照片模型

blog_form.rb:

class BlogForm
 include activeModel::Model

 attr_accessor :title,:content,:user_id,:photos

 def blog_builder


  @user = User.find(user_id)

  @blogs = @user.blogs.create(title: title,content: content )



end


concerning :PhotosBuilder do

 attr_reader :photos_attributes


 def photos

   @photos ||= Photo.new

 end

def photos_attributes=(attributes)

  @photos ||= Photo.new(attributes)

  end

 end

  def build_association

    @blogs.photos <<  @photos if photos?
    @user.photos << @photos if photos

 end


 def save
   return false if invalid?
   blog_builder
   @blogs.save
   @photos.save if @photos != nil
   build_association

 end

  def photos?
    return true if @photos != nil
  end
 end

blogs_controller:

 def new
  @user = params[:user_id]
  @blog_form = BlogForm.new
  debugger

 end

 def create
   debugger
   @blog_form = BlogForm.new(add_params) if has_a_tags? == true
   @blog_form = BlogForm.new(blog_form_params)

   if @blog_form.save
     redirect_to user_blogs_path
   else
       #False action
     end

   end


def blog_form_params
  params.require(:blog_form).permit(:user_id,:title,:photos_attributes =>[:image,:id,:destroy])
end

form.html.erb:

 <%= form_with model: @blog_form,url: user_blogs_path,local: true do |f| %>

 ....
<div class ="field form-group">
<%= f.fields_for  :photos,Photo.new do |photos_fileds|  %>

  <%= photos_fileds.label :image,class: "form-control" %>
  <%= photos_fileds.hidden_field :image,class: "upload-data",value: 
  photos_fileds.object.cached_image_data %>
  <%= photos_fileds.file_field  :image,class: "form-control  ",id: "select-files"%><br/>
  <div class="image-preview">
 <img id="image" src="<%= photos_fileds.object.image_url(:medium) %>" height="300" class="rounded"  >
 </div>
<% end %>

这些是代码显示文件上传按钮,phoos model can appear

但是我更改了一些代码

before:
<%= f.fields_for  :photos,Photo.new do |photos_fileds|  %>

之后:

 <%= f.fields_for  :photos,@blog.photos do |photos_fileds|  %>

Disappaer button

当我发送blog_form创建动作时, 我可以做照片实例

[16,23] in /home/master/prot/prottype2/app/controllers/blogs_controller.rb                                                

 16:                                                                                                                     
 17:   def create                                                                                                        
 18:     debugger                                                                                                     
  => 19:     @blog_form = BlogForm.new(add_params) if has_a_tags? == true                                                    
  20:     @blog_form = BlogForm.new(blog_form_params)                                                                     
  21:                                                                                                                     
  22:     if @blog_form.save                                                                                              
  23:       redirect_to user_blogs_path


  (byebug)   @blog_form = BlogForm.new(blog_form_params)                                                                  
  #<BlogForm:0x000056396231ff78 @user_id="5",@title="",@content="",@photos=#<Photo id: nil,image_data: "{\"id\":\"54630213ca14bfafb07d289f313a62d6.jpeg\",\"sto...",blog_id: nil,user_id: 
   nil,created_at: nil,updated_at: nil>>           (byebug)   @blog_form.photos                                                                                            
   #<Photo id: nil,blog_id: 
   nil,user_id: nil,updated_at: nil>                                                                                        
   (byebug)   @blog_form.photos.image
    #<ImageUploader::UploadedFile storage=:cache id="54630213ca14bfafb07d289f313a62d6.jpeg" metadata= 
   {"filename"=>"index.jpeg","size"=>7376,"mime_type"=>"image/jpeg"}>
   (byebug)
iCMS 回答:无法识别formobject中的照片模型

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2227689.html

大家都在问