gpt4 book ai didi

ruby-on-rails - 自动用星号标记必填字段,不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 16:30:39 25 4
gpt4 key购买 nike

我正在尝试检测 mongoid 模型中的必填字段,以便在 View 中的标签后添加标记。这是我正在使用的初始化程序。请注意,Mongoid 唯一不同的是 Mongoid::Validations::PresenceValidator,在 ActiveRecord 中是 ActiveModel::Validations::PresenceValidator,所以它可能不是 mongoid-相关问题(?):

class ActionView::Helpers::FormBuilder
alias :orig_label :label

# add a 'required' CSS class to the field label if the field is required
def label(method, content_or_options = nil, options = nil, &block)
if content_or_options && content_or_options.class == Hash
options = content_or_options
else
content = content_or_options
end

if object.class.validators_on(method).map(&:class).include? Mongoid::Validations::PresenceValidator

if options.class != Hash
options = {:class => "required"}
else
options[:class] = ((options[:class] || "") + " required").split(" ").uniq.join(" ")
end
end

self.orig_label(method, content, options || {}, &block)
end
end

此外,我使用这种样式是为了在标签中包含一个星号。需要:

 /* add required field asterisk */
label.required:after {
content: " *";
}

如果我在标签中手动设置所需的类,它会显示成功。问题是 FormBuilder 根本没有修改标签,也没有显示任何标记。似乎该文件根本没有被使用,我将其作为初始化程序包括在内,但是编写一个简单的事件 puts "I am here..." 它没有显示在服务器控制台中。

我错过了什么?

提前感谢您的回答。

最佳答案

我遇到了同样的问题,也许是你的 rails 版本。

“在 Rails 4 中,验证类已更改为 ActiveRecord。因此将 ActiveModel::Validations::PresenceValidator 替换为 ActiveRecord::Validations::PresenceValidator 应该可以解决问题。”

来源:http://blog.pothoven.net/2012/10/self-marking-required-fields-in-rails.html

关于ruby-on-rails - 自动用星号标记必填字段,不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16606279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com