समर्थित नहीं है में "चंचल वेब विकास रेल के साथ" (तीसरा संस्करण) पेज 537 - 541 इस प्रकार यह "कस्टम प्रपत्र बिल्डर्स" कोड है:अंतर्निहित तर्क define_method (द्वारा परिभाषित विधि से सुपर के गुजर)
class TaggedBuilder < ActionView::Helpers::FormBuilder
# <p> # <label for="product_description">Description</label><br/> # <%= form.text_area 'description' %> #</p>
def self.create_tagged_field(method_name)
define_method(method_name) do |label, *args|
@template.content_tag("p" , @template.content_tag("label" , label.to_s.humanize,
:for => "#{@object_name}_#{label}") + "<br/>" + super)
end
end
field_helpers.each do |name|
create_tagged_field(name)
end
end
यह कोड रूबी 1.9.1 के साथ काम नहीं करता है। यह त्रुटि देता है इस प्रकार है:
implicit argument passing of super from method defined by define_method() is not supported. Specify all arguments explicitly. (ActionView::TemplateError)
मेरा प्रश्न है: क्या मैं इसे ठीक करने के लिए कोड में बदलना चाहिए?
अब काम कर रहा है, धन्यवाद! – jaycode