0

私はhtmlとpngにresponds_toするコントローラーを持っています(画像を動的にロードしてテキストとしてレンダリングします)。これにより、コントローラーのコードが乱雑になり、今日、非常にクールに見える Respond_with を見つけましたが、html、json、および xml ( png など) とは異なるフォーマットで動作させる方法がわかりません。

私はこれがうまくいくと思っていましたが、それでもテンプレートファイルを見つけようとし、私の方法を無視します:(

models/user.rb

class User < ActiveRecord::Base  
  def to_png
    File.read("some_file.png")
  end
end

コントローラー/users_controller.rb

class UsersController < ApplicationController
  respond_to :html, :png

  # GET /users/1
  def show
    @user = User.find(params[:id])
    respond_with(@user)
  end
end
4

2 に答える 2

2

ファイルに追加してみてください[YOUR_APP]/config/initializers/mime_types.rb

Mime::Type.register "image/png", :png

アプリケーションを再起動します

于 2012-10-24T15:16:34.017 に答える
1

デフォルトでサポートされていない MIME タイプを使用する必要がある場合は、次のように独自のハンドラを environment.rb に登録できます。

Mime::Type.register "image/jpg", :jpg

http://apidock.com/rails/ActionController/MimeResponds/InstanceMethods/respond_to

environment.rb で

Mime::Type.register "image/png", :png

それから

respond_to do |format|
   format.png do
      #do stuff here
   end
end

また

respond_with @user do |format|
   format.png do
      #do stuff here
   end
end
于 2012-10-24T15:16:49.283 に答える