2010-11-21 6 views
0

J'ai créé un module Wysiwyg dans lequel un utilisateur peut créer des zones de texte personnalisées pour différentes sections de son site Web.Effacement des contrôleurs dans Rails 2

Je fais cela en vérifiant dans les contrôleurs s'ils en ont créé un pour cette section particulière pour le moment. S'ils ont, il les réoriente:

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 

Le problème est Rails est croit toujours son « nouveau », même si je l'ai redirigé l'utilisateur à modifier. Comment puis-je «effacer» le contrôleur et le faire vraiment croire sincèrement que c'est un «edit»?

Merci!

+0

Voulez-vous dire la forme qui est rendu pour votre action #edit a une route allant à #create au lieu de #update? – monocle

+0

Oui! Aussi étrange que cela puisse paraître parce que mes params le disent en édition, mon site est '/ wysiwygs/1/edit', mais quand je clique sur submit, ça va directement à un create. Mon formulaire instancie comme suit: '<% form_for (@wysiwyg,: url => chemin_admin_wysiwygs,: html => {: méthode =>: message}) do | f | %> ' – Trip

Répondre

0

Ah mon problème était ma forme instanciation

Ancien et du mal:

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

Correct:

<% form_for @wysiwyg, :url => admin_wysiwyg_path do |f| %> 
Questions connexes