0
我有一個用戶表(設計),列「admin」(布爾)來限定我的用戶。 我也有一個命名空間「後端」。 我希望我的管理員用戶可以從後端名稱空間創建新用戶。從另一個非設計控制器創建新的設計用戶
所以我創建了一個Backend::UsersController
:
class Backend::UsersController < ApplicationController
layout 'admin'
before_filter :authenticate_user!
def index
@auteurs = User.all
respond_to do |format|
format.html # index.html.erb
format.json { render json: @auteurs }
end
end
def new
@auteur = User.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @auteur }
end
end
def create
@auteur = User.new(params[:auteur])
respond_to do |format|
if @auteur.save
format.html { redirect_to @auteur, notice: 'Article was successfully created.' }
format.json { render json: @auteur, status: :created, location: @auteur }
else
format.html { render action: "new" }
format.json { render json: @auteur.errors, status: :unprocessable_entity }
end
end
end
end
這裏的 「_form」 的部分稱爲 「新」 的觀點:
<%= simple_form_for(@auteur) do |f| %>
<%= f.error_notification %>
<div class="form-inputs">
<%= f.input :email %>
</div>
<div class="form-actions">
<%= f.button :submit %>
</div>
<% end %>
的,這裏是我的路線:
namespace :backend do
resources :articles
root to: "articles#index"
resources :accueil
resources :users
get "users/index"
get "users/create"
get "users/new"
end
devise_for :users
但是,當我嘗試訪問「後端/用戶/新」時,它驅使我出現此錯誤:
NoMethodError in Backend/users#new
Showing C:/Ruby/acturevue/app/views/backend/users/_form.html.erb where line #1 raised:
undefined method `users_path' for #<#<Class:0x39616b0>:0x416f6d0>
有人對問題的根源有任何想法嗎? 感謝
UPDATE
所以,我修改了代碼,這樣的:
在後端:: UsersController:
def new
@user = User.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @user}
end
end
def create
@user = User.new(params[:user])
respond_to do |format|
if @user.save
format.html { redirect_to backend_users_path(@user), notice: 'Article was successfully created.' }
format.json { render json: @user, status: :created, location: @user }
else
format.html { render action: "new" }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end
在_form:
<%= simple_form_for(@user) do |f| %>
但我仍然有e RROR。 然而backend_users_path存在於Ÿ路線:
backend_users GET /backend/users(.:format) backend/users#
index
POST /backend/users(.:format) backend/users#
create
new_backend_user GET /backend/users/new(.:format) backend/users#
new
edit_backend_user GET /backend/users/:id/edit(.:format) backend/users#
edit
backend_user GET /backend/users/:id(.:format) backend/users#
show
PUT /backend/users/:id(.:format) backend/users#
update
DELETE /backend/users/:id(.:format) backend/users#
destroy
謝謝您關心我的問題,但錯誤仍然存在...我會更新我的帖子,向您展示我所做的修改。 –
謝謝Thilo,它的工作原理!我用'simpleform_fom_for([:backend,@user])'修改了_form部分,這很好。 –