Rails forme des redirections pour les nouveaux/créer, de modifier/mettre à jour

Je suis à l'aide de Rails 2.3.8

Je vais avoir un problème avec les actions qui se rendait après une erreur dans un formulaire.

J'ai donc un posts contrôleur et des actions liées à, index, new, create, edit, update, et show.

Ici sont les actions avec des formulaires PostsController:

def new
  @post = Post.new
  # other setup
end

def create
  if request.post?
    @post= Post.new(params[:post])
    # other setup for save
    if @post.save
      flash[:notice] = 'Post was successfully created.'
      redirect_to campaign_path(@post, :redirect => "create")
    else
      render :action => 'new'
    end
  end 
end

def edit
  @post = Post.find(params[:id])
  # other setup
end


def update
  # setup for save
  if @campaign.update_attributes(params[:post])
    flash[:notice] = 'Your post was successfully updated.'
    redirect_to :action=> "index"
  else
    render :action => "edit"
  end
end

Et voici les formes dans les vues

new.html.erb:

<% form_for(@post, :html => {:multipart => true}) do |f| %>
  <%= f.error_messages %>
  # Form fields and stuff
  <%= f.submit "Create New Post" %>
<% end %>

edit.html.erb:

<% form_for(@post, :html => {:multipart => true}) do |f| %>
  <%= f.error_messages %>
  # Form fields and stuff
  <%= f.submit "Update This Post" %>
<% end %>

Mon problème est: Si je suis sur le new page et que je fais une erreur (par exemple, laissez un champ vide), des vues qui rendent les soumettre à la mauvaise place. Donc, si je démarre sur new et de soumettre, sans succès, un tas de fois, il me prend successivement dans new, puis create, puis edit, puis update actions. Si le comportement est:

Commencer la création d'un poste:

Action: new

URI: /posts/new

Vue du rendu: new

Succès de la soumettre à la: show

Échec de soumettre à la: create

Après le premier échec de soumettre:

Action: create

URI: /posts mauvais?

Vue du rendu: new

Succès de la soumettre à la: index (ce qui signifie que la forme est la soumission à la update action, mauvais)

Échec de soumettre à la: edit mauvais

Après le deuxième échec soumettre:

Action: edit mauvais, je ne devrais pas être en mesure d'obtenir ici de new!

URI: /posts/[id]

Vue du rendu: edit mauvais, je ne devrais pas être en mesure d'obtenir ici de new!

Succès de la soumettre à la: index par le biais de la mise à jour

Échec de soumettre à la: update

Après le troisième échec soumet:

Action: update mauvais, je ne devrais pas être en mesure d'obtenir ici de new!

URI: /posts/[id]

Vue du rendu: edit mauvais, je ne devrais pas être en mesure d'obtenir ici de new!

Succès de la soumettre à la: index

Échec de soumettre à la: update

Je vous en serais reconnaissant si quelqu'un peut m'indiquer ce que je fais mal. Si vous avez besoin d'informations supplémentaires n'hésitez pas.

Merci beaucoup!

InformationsquelleAutor B_. | 2011-02-01