1

私の Rails アプリでは、ユーザーが CarrierWave 経由で画像をアップロードできるようにしています (つまり、「画像」モデルがあります)。また、YouTube ビデオを埋め込むこともできます (「ビデオ」モデルを使用)。ユーザーが Youtube ビデオを追加するたびに、Youtube サムネイル画像を使用して画像レコードを作成したいと思います。ただし、画像のパスを手動で設定して新しい画像レコードを作成しようとすると、画像の URL ではなく「null」と表示されます。たとえば、Rails コンソールに次のように入力すると、次のようになります。

Image.new(:image_path=>"http://img.youtube.com/vi/O9k-MsfIkMY/default.jpg").save

次のログ メッセージが表示されます。

INSERT INTO "images" ("caption", "created_at", "image_path", "position", "project_id", "saved", "step_id", "updated_at") VALUES ($1, $2, $3, $4, $5, $6, $7, $8) RETURNING "id"  [["caption", nil], ["created_at", Fri, 05 Jul 2013 15:57:54 EDT -04:00], ["image_path", nil], ["position", nil], ["project_id", nil], ["saved", nil], ["step_id", nil], ["updated_at", Fri, 05 Jul 2013 15:57:54 EDT -04:00]]

イメージ パスを手動で設定するにはどうすればよいですか?

画像.rb:

class Image < ActiveRecord::Base

  attr_accessible :project_id, :step_id, :image_path, :caption, :position, :saved

  belongs_to :step
  belongs_to :project

  mount_uploader :image_path, ImagePathUploader

  before_create :default_name

  # validates :image_path, :presence => true

  def default_name
    self.image_path ||= File.basename(image_path.filename, '.*').titleize if image_path
  end

end
4

1 に答える 1