如何保存照片而不提交表格,rails

时间:2010-06-22 22:29:00

标签: ruby-on-rails paperclip

如果我的文件系统中已有照片,如何在不提交表单的情况下保存?当某些动作发生时,我想在控制器中执行此操作。

我正在使用回形针保存照片。所以,如果你有任何想法如何制作回形针,那么它也会非常有帮助。

回形针:

我已经用回形针保存了一张照片。这张照片属于一匹马(模特)。我想要做的是当一匹新马被创造出来时,给那匹马照相同的照片。那我怎么能这样做呢。我试图用回形针指向那张照片。我刚刚复制了原始照片的属性。它不起作用。回形针查找错误的文件夹。

所以我有照片模型。它属于马模型。  使用回形针需要4个属性:data_content_type,data_file_name,data_file_size,data_updated_at。

如果我然后使用Photo.new创建一个新的类照片实例并给它四个回形针参数,回形针会查找保存文件的不同位置。

我该怎么办?如何在不提交表格的情况下将其保存在控制器中? (有papeclip(优选)或没有)

谢谢你的任何答案

3 个答案:

答案 0 :(得分:6)

我不清楚你之前的尝试是怎么做的,但这就是我将照片分配给模型对象的方法:

horse.photo = File.open("path/to/image/NameOfFile.extension")
horse.save!

答案 1 :(得分:1)

您是否考虑过使用paperclip的default_url选项?如果您想在默认情况下使用相同的照片,这可能是您的最佳选择。在我的应用程序中,用户可以上传头像,但如果还没有,则会显示默认图像。

has_attached_file :avatar, 
                  :styles => { :thumb => "48x48#" },
                  :default_url => "/images/avatars/missing_avatar.png",
                  :default_style => :thumb

答案 2 :(得分:-2)

您需要使用一些Flash(或类似技术)文件上传器,因为无法通过AJAX上传文件。一些建议:SWFUploadUploadify。您也可以在GitHub

上为这些库挖掘一些特定于Rails的帮助库