GET引数が仕様通りではない→クラック開始だ→即拒否、
を実現するため、
phpでの

header('HTTP/1.1 500 Internal Server Error');
exit;

と同様のことを、
rails5.1のcontroller内で行おうとして、

if @entry.blank?
  render text: "error"
  throw(:abort)
end

と書いてみたのですが、意図通り即時終了になってくれません。
rails5.1で実現可能でしょうか?

  • 2017-12-11追記
    (コメント欄だとコードブロックが使えず改行も効かない為、ソースコード載せるのが不可能でした)
    rails 5.1 の
    rails generate scaffold entry title:string body:integer
    が生成する app/controllers/entry_controller.rb は、以下のように、
    「EntriesController.set_entry で @entry を取得する」
    ようになっていまして、
    (それ以前のバージョンの動きはわかりません。rails入門してまだ一週間経ってないので...)
    そこで throw(:abort) しても効果が無い、という話でした。

app/controllers/entry_controller.rb

class EntriesController < ApplicationController
  before_action :set_entry, only: [:show, :edit, :update, :destroy]

  # GET /entries/1
  def show
  end

  # GET /entries/new
  def new
    ...
  end

  # GET /entries/1/edit
  def edit
    ...
  end

  # POST /entries
  def create
    ...
  end

  # PATCH/PUT /entries/1
  def update
    ...
  end

    # DELETE /entries/1
  def destroy
    ...
  end

  private
    # Use callbacks to share common setup or constraints between actions.
    def set_entry
      @entry = Entry.find(params[:id])
    end

    # Never trust parameters from the scary internet, only allow the white list through.
    def entry_params
    ...
    end
end