Rails教程 - 2.5.2无法进行验证练习

时间:2015-01-19 09:18:28

标签: ruby-on-rails railstutorial.org

我参与了第二章末尾的练习中的Rails教程,我很难过。 www.railstutorial.org/book/toy_app#sec-toy_app_exercises

作业2说,"通过用适当的代码替换FILL_IN来更新清单2.19,以验证用户模型中是否存在名称和电子邮件属性(图2.20)。 "

而且非常直接 代码清单2.19:

Adding presence validations to the User model. app/models/user.rb
class User < ActiveRecord::Base
  has_many :microposts
  validates FILL_IN, presence: true
  validates FILL_IN, presence: true
end

我做的第一件事就是典型的noob错误,只是在代码中直接复制出来。系统回来后问我这个变量&#34; FILL_IN&#34;是

我做的下一件事是尝试在我的user.rb文件中输入字段名称

class User < ActiveRecord::Base
    has_many :microposts
    validates name, presence: true
    validates email, presence: true
end

Running this, gets me a the following error &#34; UsersController中的NameError #create&#34; &#34;未定义的局部变量或方法`email&#39;对于#&#34;

Rails的行为似乎无法识别我的模型中的电子邮件或名称字段。

我已经尝试过将名称和电子邮件大写,我已经尝试过将它们复数形式,我已经尝试过去&#34; rails console&#34;验证我是否创建了字段&#34; name&#34;和&#34;电子邮件&#34;正确(我做了)。

我试过寻找答案,我来的衣柜是someone just pasting in the FILL_IN lines and getting harpooned for it.

我希望我没有错过任何明显的东西,但如果我这样做的话,我已经做好了准备。

1 个答案:

答案 0 :(得分:11)

@章鱼保 真棒,变量名前的冒号(:)正是我所需要的。

class User < ActiveRecord::Base
    has_many :microposts
    validates :name, presence: true
    validates :email, presence: true
end