Fehlermeldung: NoMethodError in OffersController#create

Fragen zur Controllerprogrammierung, Actions & Vermittlung zwischen Model und View

Fehlermeldung: NoMethodError in OffersController#create

Beitragvon Lee01 am 04.12.2011, 20:18

Hallo zusammen, ich bin ziemlich neu was Ruby on Rails angeht(und auch allgemein habe ich noch nicht viel Erfahrung mit Programmierung) ich bekomme obige Fehlermeldung wenn ich in der folgenden View meine Eingaben mit dem Button "Speichern" abschließen möchte:


Code: Alles auswählen
<h2>Neues Angebot erstellen</h2>
  <%= form_tag({:action => :create}, :multipart => true)%>
  <h3>Artikelbeschreibung</h3>
<p>Bezeichnung<br/>
<%= text_field(:offer, :artikelbezeichnung)%></p>
<p>Zustand<br/>
<%= text_area(:offer, :zustand, :rows => 3)%></p>
<p>Farbe<br/>
<%= text_field(:offer, :farbe)%></p>
<p>Original-Teil-Nummer<br/>
<%= text_field(:offer, :originalteilnr)%></p>
<p>Teilenummer Zulieferer<br/>
<%= text_field(:offer, :zulieferernr)%></p>
<p>Preis<br/>
<%= text_field(:offer, :preis)%></p>
<h3>Bilder-Upload</h3>
<p>Bilddatei:<br/>
<%= file_field(:offer, :image_file)%></p>
<p>Thumbnail:<br />
<%= file_field(:offer, :thumbnail_file)%></p>
<%= submit_tag('Speichern')%>
</form>


Hier der Code für den zuständigen Controller:

Code: Alles auswählen
def create

  @offer = Offer.new(params[:offer])
    if @offer.valid? == false
      flash.now[:notice] = "Bitte machen Sie Angaben zu Artikelbezeichnung und Zustand"
      render(:action => :new)
    elsif !@offer.save_files
      flash.now[:notice] = "Es trat ein Fehler beim Hochladen der Dateien auf."
      render(:action => :new)
    else
      @offer.save
      flash[:notice] = "Die Angebotsdaten wurden erfolgreich gespeichert."
      redirect_to(:action => :list)
    end
  end

def list
  @offers = Offer.find(:all, :order => 'created_at DESC')
end

def edit
  @offer = Offer.find(params[:id])
end

def update
@offer = Offer.find(params[:id])
  if @offer.update_attributes(params[:offer]) and @offer.save_files
    flash[:notice] = "Ihre Änderungen wurden gespeichert."
    redirect_to(:action => :list)
  else
    flash.now[:notice] = "Es trat ein Fehler auf. Bitte füllen Sie alle Felder aus und überprüfen Sie Ihre Angaben."
    render(:action => :edit)
  end

end

def delete
  @offer = Offer.destroy(params[:id])
  flash[:notice] = "Das Angebot '#{@offer.artikelbezeichnung}' wurde gelöscht."
  redirect_to(:action => :list)
end

  def show
  @offer = Offer.find(params[:id])
  end

  def index
  @latest_offers = Offer.find(:all, :limit => 3, :order => 'created_at DESC')
  end

end



Kann mir jemand helfen herauszufinden wodurch der Fehler verursacht wird? Bin für jede erdenkliche Hilfe sehr dankbar!
Grüße
Thomas
Lee01
 
Beiträge: 2
Registriert: 04.12.2011, 19:01

Re: Fehlermeldung: NoMethodError in OffersController#create

Beitragvon madmaurice am 12.12.2011, 14:21

hmm den fehler hatte ich heute auch. hat sich aber praktisch von selbst gelöst als ich die methode einmal umbenannt, die route geändert, einmal auf gerufen und alles wieder zurück geändert habe :? scheint ein bug zu sein :mrgreen:
madmaurice
 
Beiträge: 3
Registriert: 30.11.2011, 11:45


Zurück zu C - Controller

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron