我試圖在mongoid模型中檢測必填字段,以便在視圖中的標籤後添加標記。這是我正在使用的初始化器。請注意,對於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..."
它沒有顯示在服務器控制檯中。
我錯過了什麼?
非常感謝您的回覆。
不是它::的ActionView ::助手錶單助手? – 2013-05-17 10:26:24