0
나는 네임 스페이스가 있지만 컨트롤러 디렉토리에만있다. routes.rb에 따라서 는 :레일 : form_for의 이상한 동작
namespace :admin do
resources :user
end
이 의미 :
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
모든 액션 "새"를 제외하고 잘 작동이가 _form 렌더링하기 때문에 이상하다 "편집"에서 동일 행동과 그 잘 작동합니다. 이 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
는 그리고 이것은 오류가 발생할 형태의 첫 번째 줄입니다 : 내가 알아낼 수 없습니다 정의되지 않은 메서드`admin_users_path '
<%= form_for [:admin, @user] do |f| %>
오류가있는 곳. 어떤 조언?
에 컨트롤러
Admin::UsersController
에 클래스와 경로를 변경하여 레일 규칙을 사용하려면이 코드를 업데이트 할 수 있습니다. 하지만 왜? 저는 Ror에게 매우 익숙합니다. 왜 편집 작업에서 효과가 있었고, 새로운 것은 효과가 없었습니까? 모든 것이 똑같지 않았습니다. 고맙습니다. – Barbared댓글에서 설명하기는 다소 어렵지만 기본적으로 Rails는 REST 개념을 기반으로 URL을 작성하는 방법에 대해 특정 가정을합니다. 새로운 객체는 복수화 된 경로에 게시하여 생성되며 객체는 단일 경로로 PUT하여 편집됩니다. 단 한 번의 경로 만 있었으므로 편집이 효과적이었습니다. 내가 할 수있는 것보다 훨씬 나은 라우팅을 설명하기 때문에 http://guides.rubyonrails.org/routing.html을 읽어 보는 것이 좋습니다. –
다시 한 번 감사드립니다. – Barbared