1

バックストーリー:投稿の一部として Soundcloud URL を取り込むサイトを構築しています。現在、私は彼らが提供するリンクを保存し、ユーザーがフィード ビューをロードすると、post_helper を介して関連する画像/タイトル/お気に入り数などを取得します。これはスケーラブルではなく、ロード時間を短縮していることにすぐに気付きました。

したがって、私がすべきだと思うこと (より良い方法があることを教えてください) は、フォームの送信時に SC/YT メタデータを取得し、それを他の投稿データ (id、ユーザー、コンテンツなど) と共に保存することです。 ) 投稿のテーブル エントリ。ヘルパーメソッドを呼び出してフォーム送信時にそのようなものを取得し、送信されたパラメーターにメタデータを含めるにはどうすればよいですか?

post_helper.rb の抜粋:

def soundcloud_info(soundcloud_url, type)  
    begin
        resolve = scClient.get('/resolve', :url => soundcloud_url)
        track_info = scClient.get("/tracks/#{resolve.id}")
    rescue Soundcloud::ResponseError => e
        %Q{ Error: #{e.message}, Status Code: #{e.response.code} }
    end                 
    if type == "title"
        %Q{#{track_info['title']}}
    elsif type == "image"
        %Q{#{track_info['artwork_url']}}
    elsif type == "favCount"
        %Q{Favorite count: #{track_info['favoritings_count']}}              
    end
end

post_controler.rb の抜粋:

  def create
    @post = current_user.posts.build(params[:post])
    if @post.save
      flash[:success] = "Your post was successful!"
      redirect_to root_url
    else
      @feed_items = current_user.feed.paginate(page: params[:page])
      render 'static_pages/home'
    end
  end
4

1 に答える 1