2016-06-13 7 views
0

私は、特定のウェブページをスクラップしてLinkモデルにデータを保存するRails 4アプリを持っています。モデルが保存されていませんペーパークリップのアバターデータ

私はafter_saveコールバックと一緒にPaperclip gemを使用して画像のURLを取得し、それをAWS S3にアップロードしています。これはすべて正常に動作し、私はS3バケットで画像を見ることができます。

私が持っている問題は何:avatarが存在しないかのようにデシベルでavatar_file_nameavatar_content_typeavatar_file_sizeavatar_updated_at列がnil残っていることであるLink

link.rb:

class Link < ActiveRecord::Base 

    after_save :picture_from_url 

    has_attached_file :avatar, styles: { medium: "300x300>", thumb: "100x100>" }, default_url: "/images/:style/missing.png" 
    validates_attachment_content_type :avatar, content_type: /\Aimage\/.*\Z/ 

... 

    def picture_from_url 
     self.avatar = URI.parse(self.image_url) 
    end 

end 

にUPDATE添付:コントローラとをコード

class LinksController < ApplicationController 

... 

    def new 
    @link = Link.new 
    end 

    def create 
    @link = Link.create(link_params) 
    if @link.save 
     flash[:success] = "Thanks for your submission!" 
     redirect_to link_path(@link) 
    else 
     render :new 
    end 
    end 

    private 
    def link_params 
    params.require(:link).permit(:title, :url, :content, :tag_list, :category, :image_url, :avatar).merge(user_id: current_user.id, author_first_name: current_user.first_name) 
    end 

end 
+0

あなたは私に 'controller'と' view'を表示できますか? –

+0

私はLinksControllerから詳細を追加しましたが、あなたが見ることができるように、それはすべてかなり標準的なものです。私はウェブページを掻き集めてリンクモデルにデータを保存するのに問題はありません。リンクが保存された後にアバターデータを保存するのに問題があります – BillyBib

+0

また、私は現在データを使用していませんビュー内で – BillyBib

答えて

0

私はそれを仕上げました。

Linkは、いかなる種類の保存アクションでもデータが保存されていないため、更新されたavatarの情報が取得されませんでした。だから私がすれば:

def picture_from_url 
    self.avatar = URI.parse(self.image_url) 
    self.save 
end 

すべてがうまく動作します。私のモデルの中でself.saveと呼んでいくつかのフィードバックを得ることは素晴らしいでしょう。それは私のにおいがする。

関連する問題