Hey Leute, ich habe versucht, die Antwort auf mein spezifisches Problem zu suchen und konnte keine Lösung finden. Ich habe alles versucht. Ich habe ein Geschenkmodell mit Büroklammer, um ein Bild zu speichern. Die Geschenkinstanz wird von einem Amazon-Modell bevölkert (das die Informationen aus der Amazon API für Produktdetails einschließlich Bild, Name und Preis erfasst), aber ich kann das Bild nicht in S3 speichern. Ich denke, dass mein Problem damit zu tun hat, dass die Büroklammer es auf der "neuen" Route in meinem Geschenk-Controller in einen Amazon S3-Link konvertiert, im Gegensatz dazu, wenn es tatsächlich das Geschenk schafft. hier einige Code:Versuch, mit Paperclip & Amazon API in S3 zu speichern
class GiftsController < ApplicationController
skip_before_action :verify_authenticity_token
before_action :amazon_url, only: [:new, :new_extension]
before_action :authenticate_user!
def new
@friend = Friend.find_by_id(params[:id])
if @gift_data.failure == nil
@gift = Gift.new(
name: @gift_data.name,
image: @gift_data.image,
price: @gift_data.price
)
else
@gift = Gift.new()
if params[:search]
@failure = @gift_data.failure
respond_to do |format|
format.html
format.json { render :json => {gift: @gift} }
end
end
end
end
und mein Geschenk Modell:
class Gift < ActiveRecord::Base
belongs_to :category
has_many :ideas
has_many :friends, :through => :ideas
# this friends association doesn't work, need to troubleshoot more or figure that out
# also figure out whether we need it
has_many :goods
has_attached_file :image,
:storage => :s3,
:styles => { :medium => "370x370", :thumb => "100x100" }
validates_attachment_content_type :image, :content_type => /\Aimage\/.*\Z/
validates_presence_of :name
# validates_presence_of :category_id
# validates :url, :url => {:allow_blank => false}
# validates :price, presence: true, format: {with: /\A\d+(?:\.\d{0,2})?\z/}, numericality: {greater_than: 0, less_than: 1000000}
end
Ich habe versucht, ein Verfahren, bei dem Geschenk Modell Hinzufügen des Link URI.parse aber es funktioniert nicht. Sogar versucht, es im Geschenk-Controller auf dem Bild zu tun, aber das hat auch nicht funktioniert. Ich gehe davon aus, dass die Büroklammer das Bild auch dann verarbeitet, wenn es noch nicht erstellt wurde und ich das Geschenk danach nicht einmal erstellen kann. Würde eine Anleitung schätzen!
Hm, ich bin etwas fehlt vielleicht, aber wo bist du @gift sparen? Sie erstellen es. aber wo ist sicher? Sie sollten hinzufügen .save (Gift.new (params) .save) – denys281
die neue Route speichert es noch nicht. Ich habe eine create-Methode, die das tut – LeChiffre