【发布时间】:2015-01-18 00:04:48
【问题描述】:
错误
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
在启动 rails 服务器时,我在 YourSpace UsersController 中收到错误,其中这行代码 @users = User.limit(100).order('created_at DESC') 显然全部被顶起。请知道我试图在 365 天内复制 180 个网站,这些网站主要使用 ruby 和 rails 构建。我正在密切关注回购以建立肌肉记忆。学习如何思考和编程非常新。
【问题讨论】:
-
您可能想要重构此代码,尤其是在涉及
update操作时。几个问题: - 如果模型存在,您首先要查找模型,这将引发错误 ActiveRecord::RecordNotFound - 这将呈现 404 页面 - 您想再次呈现 :edit 表单,这样模型将具有用户的所有值已进入。 -
没有与 your_space 关联的模型。我的理解是 mvc 框架中的模型仅在处理关系数据库时才需要,对吧?因此,我只需要生成一个带有适当视图的控制器,以呈现给浏览器。再次,学习如何思考和设置 Rails 应用程序仍然是全新的。当我发现自己正在学习 hartl 教程时,我决定分道扬镳并重新创建一个由社区中的某个人在 180 天内开发了 180 个站点的项目。再次,建立肌肉记忆。
-
通过手指学习很好。但是,您想学习好东西。这段代码看起来不错railstutorial.org/book/updating_and_deleting_users
-
rails 中的模型用于与数据库交互。它不必是关系数据库(通常是 MySQL 或 PostgreSQL),它可以是文档数据库(如 MongoDB)或您真正想要的任何东西。控制器基本上是应用程序的入口点。它可以呈现一个html模板。它还可以呈现 json 响应,可以重定向(我会说那些是大 3)视图 - 表示层,它可以是 html 标记。当你构建一个 api 时,它可以是一个 json 视图。
-
有太多值得学习的东西了。该应用程序仍然损坏,所以也许我需要回到 hartl 教程
标签: ruby-on-rails