我正在使用我的Rails项目中的gem,我正在本地修改gem。
在我的Gemfile中,我有:
gem 'ancestry', path: '/Users/me/.rvm/gems/ruby-2.1.5@test_tree_app/bundler/gems/ancestry-eb5a3e448112'
当我运行bundle
时,我明白了:
Using ancestry 2.1.4 from source at /Users/me/.rvm/gems/ruby-2.1.5@test_tree_app/bundler/gems/ancestry-eb5a3e448112
我已打开此文件并在其中添加了以下两种方法:
def parents=(parents)
write_attribute(self.base_class.ancestry_column,
if parents.nil?
nil
else
parents.map(&:child_ancestry)
end
)
end
def test_method
"test"
end
请暂时忽略缩进,以便于阅读。
无论如何,在我的Rails控制台中,当我尝试访问这两种方法时,它们不在那里。
具体来说,标签完整显示了我:
4] pry(main)> r
=> #<Node id: 36, family_tree_id: 2, created_at: "2015-01-28 23:19:28", updated_at: "2015-01-28 23:19:28", name: "Mesty", ancestry: "13/35", ancestry_depth: 0, max_tree_depth: 0>
[5] pry(main)> r.p
r.parent= r.persisted? r.pretty_print_instance_variables
r.parent_id r.pluralize_table_names r.previous_changes
r.parent_id= r.pluralize_table_names? r.primary_key_prefix_type
r.parent_ids r.populate_with_current_scope_attributes r.primary_key_value
r.parents r.presence r.private_methods
r.partial_writes r.presence_in r.protected_methods
r.partial_writes? r.present? r.pry
r.path r.pretty_inspect r.psych_to_yaml
r.path_conditions r.pretty_print r.public_method
r.path_ids r.pretty_print_cycle r.public_methods
r.perform_validations r.pretty_print_inspect r.public_send
[5] pry(main)> r.t
r.table_name_prefix r.to_json_with_active_support_encoder r.toggle
r.table_name_prefix? r.to_json_without_active_support_encoder r.toggle!
r.table_name_suffix r.to_key r.touch
r.table_name_suffix? r.to_model r.transaction
r.taint r.to_param r.transaction_include_any_action?
r.tainted? r.to_partial_path r.transaction_record_state
r.tap r.to_query r.trust
r.time_zone_aware_attributes r.to_s r.try
r.timestamped_migrations r.to_xml r.try!
r.to_enum r.to_yaml
r.to_json r.to_yaml_properties
请注意,我的控制台中的可用方法列表中未列出test_method
和parents=
。
我已退出控制台,再次运行bundle
并重新打开控制台并且无法到达任何地方。
答案 0 :(得分:3)