0

Railsアプリのロゴを交換可能にしようとしています。以前の投稿はこちらをご覧ください

次のフィールドを持つロゴモデルがありますname:string、image:string、default:boolean

私はcarrierwavegemを使用して画像をimage:string列にアップロードしています。
app / models / logo.rb

class Logo < ActiveRecord::Base
mount_uploader :image, LogoUploader
scope :default, where(default: true)

def falsify_all_others
  Logo.where('id != ?', self.id).each do |item|
    item.default = false
    item.save
    end
  end
end

私はロゴコントローラーを持っています。ここで
app/controllers/logos_controller.rbを参照してください。

class LogosController < ApplicationController
def new
  @logo= Logo.new
end

def create
  @logo = Logo.new(params[:logo])
  if @logo.save
    @logo.falsify_all_others
    redirect_to logos_path, :notice => "Logo has been uploaded successfully"
  else
  render "new"
  end
end

def edit
  @logo = Logo.find(params[:id]) 
end

def destroy
  @logo = Logo.find(params[:id])
  @logo.destroy
  flash[:notice] = "Logo has been obliterated!"
  redirect_to logos_path
end

def update
  @logo = Logo.find(params[:id])

  if @logo.update_attributes(params[:logo])
    @logo.falsify_all_others
    flash[:notice] = "Logo has been changed successfully!"
    redirect_to logos_path
  else 
    flash[:alert] = "Logo has not been updated."
    render :action => "edit"
  end
end

def show
  @logo = Logo.find(params[:id])
end

def index
  @logos = Logo.all
end 
end

と私のアプリケーションコントローラー

app / controllers / application_controller.rb

before_filter :get_logo

def get_logo
  @logo_default = Logo.default
end

したがって、carrierwaveを介していくつかの画像を作成/アップロードしたら、次のようにロゴを表示します:app / views / logos / show.html.erb

<%= image_tag @logo.image_url.to_s %>

ホームページに表示するデフォルトのロゴ(ロゴスコープで見つけたもの)を追加したいと思います。現在、このコードを介してapp / asset / stylesheets/styles.scss.erbを介して実行されます

section#header {
height: 220px;
position: relative;
h1 {
    background-image: url('<%= asset_path 'logo.png' %>');
    position: absolute;
    width: 412px;
    height: 188px;
    z-index: 999;
}

だから私の質問はこれです:ロゴを表示するコードをscss.erbから引き出してapp / views / layouts / application.html.erbに追加する必要がありますか、それともscssで変更できますか?Asset_pathをimage_tagに置き換える、またはそのようなものですか?さらに情報/コードが必要な場合はお知らせください...よろしくお願いします

4

1 に答える 1

0

本番環境では、このすべての静的なものをプリコンパイルする可能性が高いため、scss に配置しないことをお勧めします。

于 2012-04-13T06:58:42.487 に答える