【发布时间】:2017-01-25 16:40:07
【问题描述】:
在我的 Ruby on Rails 应用程序中,我尝试添加验证,以确保用户在文本框中输入了一个值。在我的系统中,我有一个名为 Account 的表,它存储用户的电子邮件帐户信息,当他们进入 views/accounts/_form.html.erb 页面添加新的电子邮件帐户时,我想验证端口号的存在。我可以通过以下代码做到这一点:
validates :port, presence: true
这成功确保用户输入他们的端口号,但是当用户通过views/users/_new.html.erb 页面注册时,他们只需输入一个电子邮件地址(例如 example@example.com),然后users_controller 将创建一个在Account 表中记录此电子邮件地址。我的问题是在views/accounts/_form.html.erb 页面上需要端口号,但在views/users/_new.html.erb 上不需要。
如果用户在views/accounts/_form.html.erb 页面上或在accounts_controller 中调用create 方法,是否有验证用户输入端口号的方法?
我知道我可以通过 HTML 所需的验证来做到这一点,如下所示:<%= f.text_field :port, :required => true %> 但我需要添加进一步的验证以及存在,所以这不合适。
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 validation ruby-on-rails-4