我参与了第二章末尾的练习中的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.
我希望我没有错过任何明显的东西,但如果我这样做的话,我已经做好了准备。
答案 0 :(得分:11)
@章鱼保 真棒,变量名前的冒号(:)正是我所需要的。
class User < ActiveRecord::Base
has_many :microposts
validates :name, presence: true
validates :email, presence: true
end