gpt4 book ai didi

ruby-on-rails-3 - 配置 Rails 3 + 多态图像模型 + Paperclip 和 Amazon S3,没有错误,但没有上传

转载 作者:行者123 更新时间:2023-12-04 07:21:24 25 4
gpt4 key购买 nike

我怀疑问题在于我创建多态图像属性的方式。我正在使用 fields_for形式中。
在这种情况下,用户可以使用回形针创建帖子并添加图像,并将其存储在 S3 中。
我正在使用多态 图像模型“post_image”:

class PostImage < ActiveRecord::Base
belongs_to :imageable, :polymorphic => true
#.merge(PAPERCLIP_OPS)
has_attached_file :image, :styles => { :medium => "200x200>", :thumb => "50x50>" },
:storage => :s3,
:s3_credentials => "#{Rails.root}/config/s3.yml",
:path => "/:style/:id/:filename",
:bucket => "zounds-dev"
validates_attachment_presence :image
validates_attachment_size :image, :less_than => 5.megabytes
end

岗位型号:
class Post < ActiveRecord::Base
has_many :post_images, :as => :imageable, :dependent => :destroy
.
.
.
accepts_nested_attributes_for :post_images, :reject_if => lambda { |t| t[:post_image].nil?}, :allow_destroy => true
end

新帖子表格:
=form_for( setup_post(@post,current_user), :html => { :multipart => true}) do |f|
%dl
=f.fields_for :post_images do |ff|
=ff.file_field :image
%dt.field=f.label :name
%dd.field=f.text_field :name
%dt.field=f.label :description
%dd.field=f.text_area :description
=f.fields_for :user do |u|
=render "user_fields", :f => u
=f.fields_for :assignments do |ff|
=ff.check_box :_destroy, {:checked => ff.object.persisted?}, '0','1'
=ff.label :_destroy, ff.object.group.name
=ff.hidden_field :group_id
.action=f.submit "Save Post"

setup_post辅助方法 在帖子中使用 form_for :(组的东西在这里不相关)
  def setup_post(post, current_user)
groups = current_user.groups_as_owner + current_user.groups_as_member
(groups - post.groups).each do |group|
post.assignments.build(:group => group)
end
post.assignments.sort_by {|x| x.group.name }
post_image = post.post_images.build
post
end

邮政 Controller :
  def new
@user = User.find(params[:user_id])
# @post = @user.posts.build
@post = Post.new
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @post }
end
end

def create
@user = current_user
@post = @user.posts.build(params[:post])
.
.
.
end

我怀疑问题是我正在使用 fields_for对于 post_image 属性,但我已经看遍了,无法弄清楚实现多态嵌套图像属性的正确方法是什么。

我也做了 s3sh亚马逊 s3 控制台的东西,虽然我无法上传图像,因为我无法弄清楚如何将正确的图像路径传递给 open() 函数,但我连接到了 S3。我的 s3.yml文件也设置正确。

谢谢你们,
布赖恩

最佳答案

问题出在 reject_ifaccepts_nested_attributes对于 Post 模型
accepts_nested_attributes_for :post_images, :reject_if => lambda { |t| t[:post_image].nil?}, :allow_destroy => true
评论它解决了这个问题。

关于ruby-on-rails-3 - 配置 Rails 3 + 多态图像模型 + Paperclip 和 Amazon S3,没有错误,但没有上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9170309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com