2013-06-01 29 views
1

例如,這是一個軌道控制檯會話。我使用tab鍵來獲得所有可用的方法app。但他們中的許多人不可能打電話:爲什麼rails控制檯自動完成功能顯示對象沒有的方法?如何截斷它們形成定義的?

irb(main):040:0> app.default 
app.default      app.default_executable=   app.default_locale    app.default_scoped? 
app.default=      app.default_external_encoding  app.default_locale=    app.default_scopes 
app.default_action    app.default_external_encoding= app.default_lockfile    app.default_scopes? 
app.default_actions    app.default_form_builder   app.default_middleware_stack  app.default_separator 
app.default_adapter    app.default_form_builder=   app.default_options    app.default_separator= 
app.default_argv     app.default_format    app.default_options=    app.default_sequence_name 
app.default_argv=     app.default_format=    app.default_port     app.default_timezone 
app.default_asset_host_protocol app.default_format?    app.default_proc     app.default_uri 
app.default_asset_host_protocol= app.default_formats    app.default_proc=     app.default_url_options 
app.default_charset    app.default_gem?     app.default_regexp?    app.default_url_options= 
app.default_charset=    app.default_gemfile    app.default_render    app.default_url_options? 
app.default_dump_options   app.default_handlers    app.default_scope     app.default_value 
app.default_encoding    app.default_host     app.default_scope=    app.defaults 
app.default_engine    app.default_inspect    app.default_scoped 
app.default_executable   app.default_load_options   app.default_scoped= 

irb(main):043:0> app.default 
NoMethodError: undefined method `default' for #ActionDispatch::Integration::Session:0x2e52208> 
irb(main):042:0> app.default_lockfile 
NoMethodError: undefined method `default_lockfile' for #ActionDispatch::Integration::Session:0x2e52208> 
irb(main):041:0> app.default_locale 
NoMethodError: undefined method `default_locale' for #ActionDispatch::Integration::Session:0x2e52208> 

控制檯說對象有它們,但如果調用它們突然未定義。這是一個錯誤?如何獲得只有定義的?

回答

2

導軌控制檯試圖變得聰明,但不是。如果你想知道哪些公共方法只需要做app.public_methods

相關問題