2010-11-21 6 views
0

Ich machte ein Wysiwyg-Modul, wo ein Benutzer benutzerdefinierte Textbereiche für verschiedene Abschnitte ihrer Website erstellen kann.Clearing-Controller in Rails 2

Ich tue dies, indem ich die Controller einchecke, wenn sie für diesen bestimmten Bereich noch einen erstellt haben. Wenn sie haben, sie leitet sie:

def new 
    if Wysiwyg.find_by_name(params[:name]) != nil 
    redirect_to edit_admin_wysiwyg_path(Wysiwyg.find_by_name(params[:name])) 
    else 
    @wysiwyg = Wysiwyg.new(:name => params[:name]) 
    end 
end 

Das Problem ist, ist Rails glaubt immer noch, es ist ein ‚neues‘ obwohl ich den Benutzer zu bearbeiten umgeleitet haben. Wie kann ich den Controller 'löschen' und ihn wirklich ernsthaft glauben lassen, dass es tatsächlich ein 'Edit' ist?

Danke!

+0

Sagen Sie das Formular, das für Ihre #edit Aktion gemacht wird, hat eine Route zu #create statt #update? – monocle

+0

Ja! Seltsam wie es ist, weil meine Params es im Edit sagt, meine Seite ist '/ wysiwygs/1/edit', aber wenn ich auf submit klicke, geht es direkt zu einem create. Meine Form wird wie folgt instanziiert: '<% form_for (@wysiwyg,: url => admin_wysiwygs_pfad,: html => {: method =>: post}) do | f | %> ' – Trip

Antwort

0

Ah, mein Problem war in meiner Form Instanziierung

Alt und Evil:

<% form_for(@wysiwyg, :url => admin_wysiwygs_path, :html => { :method => :post}) do |f| %> 

Richtig:

<% form_for @wysiwyg, :url => admin_wysiwyg_path do |f| %> 
Verwandte Themen