【发布时间】:2018-08-21 20:45:56
【问题描述】:
class Client < ApplicationRecord
has_many :projects
validates :name, presence: true
validates :phone,
presence: {
message: "Phone or Email can not be blank",
if: Proc.new { |a| a.email.blank? }
},
length: {
minimum: 10,
unless: Proc.new { |a| a.phone.blank? }
}
validates :email,
uniqueness: {
unless: Proc.new { |a| a.email.blank? }
},
presence: {
message: "Phone/Email can't both be blank",
if: Proc.new { |a| a.phone.blank? }
},
format: {
with: URI::MailTo::EMAIL_REGEXP,
unless: Proc.new { |a| a.email.blank? }
}
def phone_blank?
Proc.new { |a| a.phone.blank? }
end
end
如何创建一个方法来替换所有 Proc? 我刚刚了解了 Proc,但我还不太熟悉。我尝试在 if:/unless: 之后使用 :phone_blank 替换所有 proc,但它无法正常工作。有人可以告诉我如何制作phone_blank吗?方法可以替换代码中嵌入的所有过程吗?谢谢~
已编辑: 我忘了提到我正在使用 rails_admin 作为管理界面。如果我在 if:/unless: 中调用方法,管理面板将显示 找不到模型“客户端”,然后该模型将从管理面板中消失。我不确定这是 rails_admin 的事情还是 Rails 5 的行为方式。我对 RoR 很陌生,仍然对所有不同版本的 Rails 感到困惑......
【问题讨论】:
标签: ruby-on-rails proc