old*_*god 12 ruby ruby-on-rails
简而言之,我有一个模型User,其名称,电子邮件和评论作为属性.
validates_presence_of :name
validates_presence_of :email
Run Code Online (Sandbox Code Playgroud)
因此,'name'和'email'是必需的,但不是'comment'.
my_user = User.new
Run Code Online (Sandbox Code Playgroud)
我想找个像my_user.name.required一样测试的方法吗?或者User.name.required?之类的事情.
我的目标是创建一个表单并将一个特定的类动态添加到表单项span或td,具体取决于该项是否设置为"validates_presence_of"
我试图搜索它,但没有找到任何关于.有一个简单的方法来做到这一点?
谢谢
Che*_*sea 21
没有一种方法可以调用来处理这个问题,但是这篇文章讨论了如何创建一个帮助方法来实现它听起来像你所追求的那样.
module InputHelper
def required?(obj, attribute)
target = (obj.class == Class) ? obj : obj.class
target.validators_on(attribute)
.map(&:class)
.include?(ActiveModel::Validations::PresenceValidator)
end
end
Run Code Online (Sandbox Code Playgroud)
在演员的2/3处查看关于表单构建器的Railscast:
/app/form_builders_labelled_form_builder.rb
def field_label(name, *args)
options = args.extract_options!
required = object.class.validators_on(name).any? { |v| v.kind_of? ActiveModel::Validations::PresenceValidator }
label(name, options[:label], class: ("required" if required))
end
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3636 次 |
最近记录: |