2015-01-17 44 views
0

錯誤未初始化的常量YourSpace :: UsersController ::用戶

uninitialized constant YourSpace::UsersController::User 

控制器

class YourSpace::UsersController < ApplicationController 

def new 
@title = YourSpace 
end 

def edit 
@title = YourSpace 
@user = User.find(params[:id]) 
end 

def update 
    name = params[:user][:name] 

    if name.blank? 
    flash[:notice] = "Name can not be blank dawg!" 
    redirect_to :back 
    else 
    User.find(params[:id]).update_attributes(params[:user]) 
    # redirect_to :action 'show' 
    redirect_to :action => :show 
    # render :action => 'show' 
end 
end 

def index 
    @title = YourSpace 
    @users = User.limit(100).order('created_at DESC') 
end 

def show 
    @title = YourSpace 
    @user = User.find(params[:id]) 
end 
end 

路線

Rails.application.routes.draw do 


root 'site#home' 
get '/about', to: 'site#about', as: :about 

namespace :your_space do 
resources :users 
end 

namespace :word_cloud do 
resources :words, :only => [:index, :create] 
end 

namespace :word_clock do 
resources :page, :only => [:index] 
end 

namespace :wish do 
resources :page, :only => [:index] 
end 

end 

發射了鐵軌服務器時,我得到錯誤的YourSpace UsersController這行代碼@users = User.limit(100).order('created_at DESC')顯然都是頂起來的。請知道我試圖在365天內複製180個網站,這些網站大多是使用ruby和rails製作的。我密切關注回購以建立肌肉記憶。學習如何思考和編程非常新。

+0

您可能想要重構此代碼,特別是涉及到「更新」操作時。幾個問題: - 你首先想找到模型,如果它存在這會引發錯誤ActiveRecord :: RecordNotFound - 這將渲染404頁面 - 你想渲染:再次編輯窗體,這種方式模型將所有的用戶輸入的值。 –

+0

沒有與your_space關聯的模型。這是我理解mvc框架中的模型只有在處理關係數據庫時才需要,對嗎?因此,我只需要生成一個具有相應視圖的控制器來呈現給瀏覽器。再次,對於學習如何思考並設置一個rails應用程序來說,它仍然是全新的。當我發現自己正在通過hartl教程時,我決定在180天內180個網站開發的社區中的某個人分離並重新創建一個項目。再次,建立肌肉記憶。 – Justin

+0

通過手指學習很好。但是,你想學習好東西。 這段代碼看起來不錯https://www.railstutorial.org/book/updating_and_deleting_users –

回答

0

首先想到的是錯誤的。要解決這個問題改變User::User


我首先想到的是,你需要把這個YourSpace::UsersControllerapp/controllers/your_space/users_controller.rb。 Rails強制目錄結構。

+0

控制器的停車場結構是這樣設置的,在控制器中有your_space目錄,帶有users_controller.rb文件,我想你會說設置錯了? – Justin

+0

我有點覺得現在愚蠢。沒有完全讀你的問題。出於某些原因,我不太確定他是否會將'User'模式自動命名爲當前命名空間。如果你要寫':: User',它會知道回到根名字空間。 –

+0

我還沒有理解 – Justin

相關問題