0

コントローラーのフィルター条件が満たされない場合に HTTP ステータス コードを設定するにはどうすればよいですか?

たとえば、次のコントローラーでは

class FooController < ApplicationController
  before_filter :foo_filter

  def action
     respond_to :html
  end

  private

  def foo_filter
    return false unless some_conditions
  end
end

some_conditionsfalseでアクションを呼び出したときの HTTP ステータスコードを 410 に設定したいと考えています。どうやってやるの?

Rails 3とRails 2の2つのアプリケーションを実行しているので、異なる場合は各Railsバージョンの回答に興味があります。

4

1 に答える 1

2
class FooController < ApplicationController
  before_filter :foo_filter

  def action
    respond_to :html
  end

  private

  def foo_filter
    head :gone unless some_conditions
  end
end
于 2013-07-19T17:28:12.837 に答える