Sha256: 8f34358436c35e3b1723517e78f261ad2085c78e9b0ee4b839c331057cfcaf06
Contents?: true
Size: 1.69 KB
Versions: 118
Compression:
Stored size: 1.69 KB
Contents
module RecordSelect def self.included(base) base.send :extend, ClassMethods end module ClassMethods # Enables and configures RecordSelect on your controller. # # *Options* # +model+:: defaults based on the name of the controller # +per_page+:: records to show per page when browsing # +notify+:: a method name to invoke when a record has been selected. # +order_by+:: a SQL string to order the search results # +search_on+:: an array of searchable fields # +full_text_search+:: a boolean for whether to use a %?% search pattern or not. default is false. # +label+:: a proc that accepts a record as argument and returns an option label. default is to call record.to_label instead. # +include+:: as for ActiveRecord::Base#find. can help with search conditions or just help optimize rendering the results. # +link+:: a boolean for whether wrap the text returned by label in a link or not. default is true. set to false when # label returns html code which can't be inside a tag. You can use record_select_link_to_select in your proc # or partial to add a link to select action # # You may also pass a block, which will be used as options[:notify]. def record_select(options = {}) options[:model] ||= self.to_s.split('::').last.sub(/Controller$/, '').pluralize.singularize.underscore @record_select_config = RecordSelect::Config.new(options.delete(:model), options) self.send :include, RecordSelect::Actions self.send :include, RecordSelect::Conditions end attr_reader :record_select_config def uses_record_select? !record_select_config.nil? end end end
Version data entries
118 entries across 118 versions & 3 rubygems