1

私はそのようなコードを持っています:

def show
  @attachment = Attachment.find(params[:id])

  respond_to do |format|
    format.html
  end
end

このコードは json での応答を許可しますが、何もレンダリングしません。HTML以外の他のリクエストでカスタムページを表示する方法は?

4

3 に答える 3

2

format.anyhtml 以外の他のリクエストに使用できます。

def show
  @attachment = Attachment.find(params[:id])

  respond_to do |format|
    format.html { render text: => 'This is html' }
    format.any  { render :text => "Only html is supported" }
  end
end
于 2013-03-23T10:18:18.783 に答える
2

試す:

before_filter do
  render text: 'Wrong type', status: 406 unless request.format == Mime::HTML
end
于 2013-03-23T12:24:18.967 に答える
2

config/routes.rb でルートを定義するときに、ルートの形式を制限できます。

scope :format => true, :constraints => {:format => :html} do
  resources :attachments
end

その範囲内でフォーマットを制限するすべてのルートを定義します。

于 2013-03-23T12:24:39.330 に答える