0

ねえ、私はペーパークリップで画像をアップロードしているRailsアプリを持っています...

だから私はコミックカバーの画像をアップロードするcomic_reviewスキャフォールドを持っており、ニュースや画像を投稿するニューススキャフォールドも持っています.....

ニュース/1/編集して画像をアップロードすると、comics_review / 1の画像はニュースと同じになり、その逆も同様です。

ビューのリンクをチェックして、私が正しく、問題がないように見えることを確認しました...

これが私の見解です

home.html.erb

          <h2 style="color: black; font-size: 30px;"><%= @comic_review1.title %></h2>
          <p><%= @comic_review1.content %></p>
          <%= link_to 'Read More...', comic_review_path(@comic_review1) %>               
          <%= image_tag @comic_review1.photo, class: "homepage_comics" %>

news / show.html

          <%= @news.author %>
          <%= @news.date %>
          <%= image_tag @news.photo, class: 'pull-left', style: 'margin-right: 10px;' %>

これが私のコントローラーです

static_pages_controller.rb

           class StaticPagesController < ApplicationController
           def home
         @user = current_user
             @article = Article.first
             @comic_review1 = ComicReview.find(1)
             @comic_review2 = ComicReview.find(2)
             @comic_review3 = ComicReview.find(3)
             @comic_review4 = ComicReview.find(4)
           end

           def comics
             @comic_review1 = ComicReview.find(1)
             @comic_review2 = ComicReview.find(2)
             @comic_review3 = ComicReview.find(3)
             @comic_review4 = ComicReview.find(4)
           end

           def batnews
             @article = Article.first
             @news_all = News.all
           end
           end

これが私のモデルです

combic_review.rb

        class ComicReview < ActiveRecord::Base
        attr_accessible :content, :credits, :review, :title, :photo, :comicreview
        has_attached_file :photo, :styles => { :small => '400x400' },
        :storage => :s3,
        :s3_credentials => "#{Rails.root}/config/s3.yml",
        :path => ":attachment/activities/:id/:style.:extension",
        :bucket => 'goddam_batman_pics'

        has_many :comments, as: :commentable, dependent: :destroy
        end

news.rb

        class News < ActiveRecord::Base
        attr_accessible :title, :author, :date, :content, :photo
        has_attached_file :photo, :styles => { :small => '400x400' },
       :storage => :s3,
       :s3_credentials => "#{Rails.root}/config/s3.yml",
       :path => ":attachment/activities/:id/:style.:extension",
       :bucket => 'goddam_batman_pics'
       end

コントローラーは、スキャフォールドによって生成される基本的なコントローラーです。

したがって、news / 1の写真を更新するたびに、comic_reviews/1の写真はニュースの写真と同じ写真になります。

助けていただければ幸いですありがとうございます

4

2 に答える 2

0

さて、私がしなければならなかったのは私のモデルで、パスをから変更しました

:path => ":attachment / activity /:id /:style.:extension"、

:path => "/ image /:id /:filename"、

そしてそれは働いているようです

于 2012-12-14T21:23:36.033 に答える
0

問題は、両方のモデルで「写真」に同じ名前を付けていることだと確信しています。一方のcomic_photoともう一方のnews_photoに名前を付けるか、またはポリモーフィックアソシエーションを調べてみてください。

日付付きのRailscastリンクですが、アイデアが得られます-http://railscasts.com/episodes/154-polymorphic-association

PS-これらのコントローラーで4つではなく、1つのクエリで4つのComicReviewをロードする方法を理解するためのボーナスポイント。

于 2012-12-14T20:45:15.570 に答える