2016-04-27 8 views
-2

Ich habe 4 Modelle erstellt: Grow, Tray, Plant, Category. Meine Absicht ist es, jedem Modell eine Kategorie zuzuordnen, damit ich mich über Kategorien organisieren kann. Wenn ich einen neuen Zuwachs erstelle, wird eine neue Kategorie erstellt. Wenn ich ein neues Fach anlege, kann ich das Fach der neu erstellten Wachstumskategorie zuweisen.Erstellen Sie eine neue Kategorie, wenn eine neue Aktion auf einem separaten Controller aufgerufen wird

wachsen belongs_to Kategorie Tray belongs_to Kategorie Pflanze belongs_to Kategorie

class GrowsController < ApplicationController 
before_action :set_grow, only: [:show, :edit, :update, :destroy] 


def index 
    @grows = Grow.all 
end 


def show 
end 


def new 
    @grow = Grow.new 
end 


def edit 
end 


def create 
    @grow = Grow.new(grow_params.merge(category: Category.create(cat_params))) 

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

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

# DELETE /grows/1 
# DELETE /grows/1.json 
def destroy 
    @grow.destroy 
    respond_to do |format| 
    format.html { redirect_to grows_url, notice: 'Grow was successfully destroyed.' } 
    format.json { head :no_content } 
    end 
    end 

private 
    # Use callbacks to share common setup or constraints between actions. 

    def set_grow 
    @grow = Grow.find(params[:id]) 
    end 
    def cat_params 
    params.require(:category).permit(:name) 
    end 
    def grow_params 
     params.require(:grow).permit(:title, :notes, :category_id) 
    end 
    end 

etc etc, es ist ziemlich Standard-Setup für die Ansichten und Controller. Ich bin mir nicht sicher, wie ich das erreichen soll. Bitte helfen Sie, mich in die richtige Richtung zu lenken :)

Antwort

0
def create 
    @grow = Grow.new(grow_params.merge(category: Category.create(cat_params))) 
end 
+0

Ich bekomme diesen Fehler. ‚param fehlt oder der Wert ist leer: Kategorie‘ – mGarsteck

+0

Obwohl dieser Code die Frage beantworten kann, zusätzlichen Kontext bereitstellt in Bezug auf _why_ und/oder _how_ es beantwortet die Frage würde seine langfristige Wert deutlich verbessern. Bitte [bearbeiten] Sie Ihre Antwort, um eine Erklärung hinzuzufügen. –

Verwandte Themen