【问题标题】:Rails Tutorial - 2.5.2 Can't get validaiton exercise to workRails 教程 - 2.5.2 无法进行验证练习
【发布时间】:2015-01-19 09:18:27
【问题描述】:

我在 Rails 教程中做第 2 章末尾的练习,我很困惑。 www.railstutorial.org/book/toy_app#sec-toy_app_exercises

作业 2 说,“更新清单 2.19,用适当的代码替换 FILL_IN,以验证 User 模型中是否存在 name 和 email 属性(图 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

我做的第一件事是典型的菜鸟错误,直接从清单中复制代码。系统回来问我这个变量“FILL_IN”是什么。

接下来我做的是尝试将字段名称放入我的 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 “用户控制器中的名称错误#create” "# 的未定义局部变量或方法 `email'"

Rails 表现得好像它无法识别我模型中的电子邮件或名称字段。

我尝试过大写名称和电子邮件,我尝试将它们设为复数,我尝试转到“rails 控制台”以验证我是否正确创建了字段“名称”和“电子邮件”(我做到了)。

我已经尝试寻找这个问题的答案,我来的壁橱是someone just pasting in the FILL_IN lines and getting harpooned for it.

我希望我没有错过同样明显的事情,但如果我错过了,我已经做好了准备。

【问题讨论】:

  • 你的数据库架构是什么?
  • 使用validates :name, presence: truevalidates :email, presence: true(我使用符号作为列名)

标签: ruby-on-rails railstutorial.org


【解决方案1】:

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

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

【讨论】:

  • 同样的事情发生在我身上!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-10
  • 2016-01-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多