En espérant que quelqu'un puisse signaler l'erreur de mes façons ici. J'ai un formulaire avec une action personnalisée avec un bouton standard soumettre:L'action du contrôleur personnalisé ne fonctionne pas
= form_for(@property, :html => {:data => {:abide => ''}, :id => 'property-edit-form'},:url => url_for(:action => 'update_promo')) do |f|
L'itinéraire est le suivant:
post 'properties/update_promo', :as => 'update_promo'
L'action du contrôleur est:
def update_promo
@property = Property.find(params[:id])
if @property.update(property_params)
respond_to do |format|
format.html
format.js
end
else
render 'edit'
end
end
Le problème c'est qu'il appelle toujours l'action de mise à jour par défaut. Et j'obtiens l'erreur:
Couldn't find Property with 'id'=update_promo
Quelqu'un peut-il aider avec ceci?
itinéraires complets ...
get 'users/index'
get 'home/index'
get 'properties/update_regions', :as => 'update_regions'
get 'properties/update_places', :as => 'update_places'
get 'properties/update_map', :as => 'update_map'
get 'properties/update_promo', :as => 'update_promo'
root 'home#index'
post "versions/:id/revert" => "versions#revert", :as => "revert_version"
resources :properties
resources :users do
collection do
get :properties # add this line
end
end
Pourriez-vous poster plus de votre fichier de routes? On dirait que le problème est l'ordre des routes, mais cela aiderait à voir. – DaveMongoose
Merci Dave, ajouté ci-dessus. – steve
try ': action => update_promo_path' Je ne suis pas sûr que cela fonctionnera, c'est pourquoi l'afficher dans le commentaire. –