21 Apr
duccio

duccio il 21 April 2009 parla di Altro

Ruby: public_instance_methods

Su Ruby Doc di ruby 1.8.6 potete vedere che i public_instance_methods prevedono di default l’inclusione dei metodi della classe da cui derivano. Quindi se volete i metodi di un controllore, visto che derivano da ApplicationController, vi ritrovate tutti i metodi del padre. Per evitare il problema:

    1       methods = controller.public_instance_methods(false).map{|action| action }

Così avrete un elenco dei metodi pubblici del vostro controllore. Per quelli di voi che usano un sistema di ruoli basato su permessi ad azione, potrebbe essere utile per filtrare le solamente le azioni necessarie.

    1 ["update", "destroy", "create", "new"]

Anzichè avere tutti i metodi dell’application:

    1 ["freeze", "headers", "process_with_components", "formatted_admin_placements_path", 
    2 "formatted_edit_admin_product_path", "headers=", "logger", "hash", 
    3 "formatted_admin_snippets_path", "respond_to?", "write_fragment", 
    4 "formatted_edit_admin_newsletter_path", "logger=", "controller_path", 
    5 "formatted_admin_link_path", "formatted_edit_admin_account_path", 
    6 "formatted_user_url", "formatted_admin_url", "formatted_edit_admin_picture_path", 
    7 "session", "formatted_new_admin_content_placement_path", 
    8 "formatted_new_admin_resource_path", "session=", "frozen?", 
    9 "formatted_new_admin_content_snippet_path", "sanitize_params", 
   10 "sort_header_tag", "to_a", "formatted_admin_repositories_path", 
   11 "polymorphic_path", "authenticate_or_request_with_http_digest", 
   12 "formatted_admin_box_path", "list", "formatted_home_url", "instance_values", 
   13 "formatted_new_user_url", "debugger", "content_url", "formatted_edit_admin_container_path", 
   14 "formatted_edit_admin_event_url", "admin_sort", "to_s", "object_id", 
   15 "formatted_polymorphic_url", "rescue_handlers", "send_response_with_render_component", 
   16 ...
   17 ...]

2 Commenti a “Ruby: public_instance_methods”

  1. lucapette il 22 April 2009 alle 08:05 dice:

    :) nice…
    Io uso spessissimo piccoli trick come questo nella console rails. Sono davvero utili quando ti serve un’informazione “al volo”.

  2. duccio il 22 April 2009 alle 08:30 dice:

    :-)

Scrivi un commento