Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Retrieve responses and requests content types #5

Open
louaabtj opened this issue Nov 22, 2014 · 2 comments
Open

Retrieve responses and requests content types #5

louaabtj opened this issue Nov 22, 2014 · 2 comments

Comments

@louaabtj
Copy link

I would like to create a documentation file for RESTful Ruby on Rails application. This project helped me to retrieve the HTTP paths, verbs and also the parameters.
For getting the content type of responses and request, I tried with it and couldn't get any entry.

*I using Rails 4.1
My controller is as the following:

class AutosController < ApplicationController
  before_action :set_auto, only: [:show, :edit, :update, :destroy]
  # GET /autos
  # GET /autos.json
  def index
    @autos = Auto.all
  end

  # GET /autos/1
  # GET /autos/1.json
  def show
  end

  # GET /autos/new
  def new
    @auto = Auto.new
  end

  # GET /autos/1/edit
  def edit
  end

  # POST /autos
  # POST /autos.json
  def create
    @auto = Auto.new(auto_params)

    respond_to do |format|
      if @auto.save
        format.html { redirect_to @auto, notice: 'Auto was successfully created.' }
        format.json { render :show, status: :created, location: @auto }
      else
        format.html { render :new }
        format.json { render json: @auto.errors, status: :unprocessable_entity }
      end
    end
  end

  # PATCH/PUT /autos/1
  # PATCH/PUT /autos/1.json
  def update
    respond_to do |format|
      if @auto.update(auto_params)
        format.html { redirect_to @auto, notice: 'Auto was successfully updated.' }
        format.json { render :show, status: :ok, location: @auto }
      else
        format.html { render :edit }
        format.json { render json: @auto.errors, status: :unprocessable_entity }
      end
    end
  end

  # DELETE /autos/1
  # DELETE /autos/1.json
  def destroy
    @auto.destroy
    respond_to do |format|
      format.html { redirect_to autos_url, notice: 'Auto was successfully destroyed.' }
      format.json { head :no_content }
    end
  end

 def buy
    @auto = Auto.find(params[:id])
    respond_to do |format|
      if @auto.update_attribute(:gekauft, true)
        format.html { redirect_to @auto, notice: 'Auto wurde erfolgreich gekauft.'}
        format.json { head :no_content }
      else
        format.html { redirect_to @auto, notice: 'Fehler beim Kauf.'}
        format.json { render json: @auto.errors, status: :unprocessable_entity }
      end
    end
  end


  def sell
    @auto = Auto.find(params[:id])
    respond_to do |format|
      if @auto.update_attribute(:gekauft, false)
        format.html { redirect_to @auto, notice: 'Auto wurde erfolgreich verkauft.'}
        format.json { head :no_content }
      else
        format.html { redirect_to @auto, notice: 'Fehler beim Verkauf.'}
        format.json { render json: @auto.errors, status: :unprocessable_entity }
      end
    end
  end



  private

  # Use callbacks to share common setup or constraints between actions.
  def set_auto
    @auto = Auto.find(params[:id])
  end

  # Never trust parameters from the scary internet, only allow the white list through.
  def auto_params
    params.require(:auto).permit(:farbe, :anzahl_sitze, :gekauft)
  end


 end
@austvik
Copy link
Owner

austvik commented Nov 23, 2014

Hi, Melo/louaabtj!

I agree - that would be a really cool feature to have! I don't really know how to extract that information in a dynamic typed language, though. Do you have any suggestions on how it could be done?

Oh, and BTW, take a look at respond_with, which might make your controller even prettyer:
http://archives.ryandaigle.com/articles/2009/8/6/what-s-new-in-edge-rails-cleaner-restful-controllers-w-respond_with

@louaabtj
Copy link
Author

Hi Austvik,
Thanks for the tip. Well I tried to retrieve that from the responder attribute from the Controller object, but as beginner in Rails I don't know how.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants