我正在跟踪教程,我的new操作出现了一个错误。我使用本教程作为指导方针,我的数据库也不同。这是我的代码:
def new
@skill = Skill.new
@skills = Skill.find(:all)
end这是我的错误信息:
uninitialized constant SkillsController::Skill@skill = Skill.new是突出显示的一行,所以我的错误应该出现在某个地方。谢谢你,我会继续用研究的力量来修复它!
^^^^^^^^^^^^^^^solved^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
现在,我收到了一个新的错误,而且我的数据库似乎不太适合技能id。我正在尝试转到localhost:3000/skills/list,这是我的代码:
class SkillsController < ApplicationController
def list
@skills = Skill.find(:all)
end
def show
@skills = Skill.find(params[:id])
end我的错误是:
没有身份证就找不到技能
它强调:
@skills = Skill.find(params[:id])作为问题所在。感谢任何知道如何解决这个问题的人,如果我应该重新发布作为一个不同的问题,让我知道,我会这样做。再次感谢您的网页开发社区!
发布于 2014-06-19 06:58:28
语法
首先,语法应读为:
def new
@skills = Skill.all
end--
误差
关于您的错误,正如注释中所描述的,您确实需要确保您的应用程序中有可用的Skill类。
您必须记住,Rails基本上只是一系列的类&模块,这意味着如果您试图调用一个“模型”,您实际上是在调用一个需要加载的Ruby类 (作为常量)。
问题是应用程序没有加载Skill类(模型)。这很可能是在您的app/models目录中没有使用它的结果:
#app/models/skill.rb
Class Skill < ActiveRecord::Base
...
end不过,我担心的是,您的错误如何试图将该模型包装在另一个类-- SkillsController中。如果您已经对控制器进行了同名空间,则通常是这种情况;但是无论是哪种方式,都应该创建model,重新启动服务器&再次测试
发布于 2014-06-19 06:01:52
我觉得你搞砸了rails的惯例。Rails期望Controller类名为多元,因此SkillsController将成为技能表的控制器类。然后,Rails将在/app/controllers目录中的一个名为skills_controller.rb的文件中查找类定义。有关命名约定的更多信息,请参考这里。
同样由于您的错误,uninitialized constant SkillsController::Skill说。我认为您没有使用模型设置您的Skill.rb技能表,注意您的表名将是复数的,您的模型名称将是单数的
https://stackoverflow.com/questions/24299213
复制相似问题