ruby-on-railsruby-on-rails-3respond-with

Respond_with templates and status codes


There are some instances where I need to both have a template and return error codes when using respond_with in Rails 3.

I have a before filter that is as follows:

def ensure_premium
  respond_with("Must be a premium user!", status: 401, location: nil) unless current_user.is_premium?
end

and a create action that does the following:

def create
    @wait_list = @hangout.wait_lists.find_or_create_by(user_id: current_user.id)
    respond_with(@wait_list) do |format|
      format.json {render 'create', status: 201}
    end
end

Even though the before filter trips, it still tries to render the template which results in an error. What am I missing to get it to return the right error and status code and not render the template?


Solution

  • I ended up going a different route completely so this question is no longer valid.