Ruby: Akcje kontrolerów Rails

Ta dokumentacja jest częścią przewodnika Nauka Ruby. Pełny przewodnik znajdziesz tutaj: Kompleksowy przewodnik po Ruby i Rails.

👋 Witamy w dokumentacji Stackhero!

Stackhero oferuje gotowe do użycia rozwiązanie Ruby cloud, które zapewnia wiele korzyści, w tym:

  • Wdrażaj swoją aplikację w kilka sekund za pomocą prostego git push.
  • Używaj własnej nazwy domeny i korzystaj z automatycznej konfiguracji certyfikatów HTTPS dla zwiększonego bezpieczeństwa.
  • Ciesz się spokojem dzięki automatycznym kopiom zapasowym, aktualizacjom jednym kliknięciem oraz prostemu, przejrzystemu i przewidywalnemu cennikowi.
  • Uzyskaj optymalną wydajność i solidne zabezpieczenia dzięki prywatnej i dedykowanej VM.

Oszczędzaj czas i upraszczaj sobie życie: wypróbowanie rozwiązania Ruby cloud hosting Stackhero zajmuje tylko 5 minut!

Kontrolery działają jako pośrednicy między modelami a widokami, odbierając przychodzące żądania i renderując odpowiednie odpowiedzi. Poniższe przykłady ilustrują typowe akcje kontrolera do listowania, wyświetlania, tworzenia, aktualizowania i usuwania zasobów:

  1. Akcja index (lista wszystkich obiektów):

    def index
      @objects = ModelName.all
    end
    
  2. Akcja show (wyświetl pojedynczy obiekt):

    def show
      @object = ModelName.find(params[:id])
    end
    
  3. Akcja new (wyświetl formularz dla nowego obiektu):

    def new
      @object = ModelName.new
    end
    
  4. Akcja create (zapisz nowy obiekt):

    def create
      @object = ModelName.new(params.require(:model_name).permit(:field1, :field2))
      if @object.save
        redirect_to @object
      else
        render :new
      end
    end
    
  5. Akcja edit (wyświetl formularz do edycji istniejącego obiektu):

    def edit
      @object = ModelName.find(params[:id])
    end
    
  6. Akcja update (zastosuj zmiany do istniejącego obiektu):

    def update
      @object = ModelName.find(params[:id])
      if @object.update(params.require(:model_name).permit(:field1, :field2))
        redirect_to @object
      else
        render :edit
      end
    end
    
  7. Akcja destroy (usuń obiekt):

    def destroy
      @object = ModelName.find(params[:id])
      @object.destroy
      redirect_to model_name_path
    end