J'ai une ressource d'espace de noms, mais seulement dans les répertoires du contrôleur. Ainsi, dans routes.rb:Rails: comportement bizarre dans la forme_pour
namespace :admin do
resources :user
end
qui signifie ceci:
admin_user_index GET /admin/user(.:format) admin/user#index
POST /admin/user(.:format) admin/user#create
new_admin_user GET /admin/user/new(.:format) admin/user#new
edit_admin_user GET /admin/user/:id/edit(.:format) admin/user#edit
admin_user GET /admin/user/:id(.:format) admin/user#show
PUT /admin/user/:id(.:format) admin/user#update
DELETE /admin/user/:id(.:format) admin/user#destroy
Tout fonctionne bien, sauf l'action « nouveau » et c'est bizarre puisque le rendu _form est le même dans le « modifier » l'action et cela fonctionne bien. Ceci est mon contrôleur au sein de répertoire admin:
class Admin::UserController < ApplicationController
# GET /users
def index
@users = User.all
end
# GET /users/1
def show
@user = User.find(params[:id])
end
# GET /users/new
def new
@user = User.new
end
# GET /users/1/edit
def edit
@user = User.find(params[:id])
end
# POST /users
def create
@user = User.new(params[:user])
respond_to do |format|
if @user.save
format.html { redirect_to @user, notice: 'User was successfully created.' }
else
format.html { render action: "new" }
end
end
end
# PUT /users/1
def update
@user = User.find(params[:id])
respond_to do |format|
if @user.update_attributes(params[:user])
format.html { redirect_to [:admin ,@user], notice: 'User was successfully updated.' }
else
format.html { render action: "edit" }
end
end
end
end
Et ceci est la première ligne de la forme qui provoque l'erreur: méthode non définie admin_users_path »
<%= form_for [:admin, @user] do |f| %>
Je ne peux pas comprendre où l'erreur est. Un conseil?
Ok ça marche. Mais pourquoi? Je suis très nouveau à Ror et je ne comprends pas pourquoi dans l'action d'édition cela a bien fonctionné et dans le nouveau ne l'a pas fait? Tout était pareil n'était pas? Merci en passant – Barbared
C'est un peu difficile à expliquer dans un commentaire, mais Rails fait essentiellement certaines hypothèses sur la façon dont vos URL sont construites sur la base du concept REST. Les nouveaux objets sont créés en POSTing sur l'itinéraire pluralisé et les objets sont édités en METTANT en route la route singulière. Puisque vous avez seulement eu une route singulière, c'est pourquoi l'édition a fonctionné. Je recommande fortement de lire http://guides.rubyonrails.org/routing.html car cela explique le routage beaucoup mieux que je peux. –
Ok merci encore – Barbared