DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones AWS Cloud
by AWS Developer Relations
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones
AWS Cloud
by AWS Developer Relations
11 Monitoring and Observability Tools for 2023
Learn more

Navigation Inside RubyMine

Eugene Toporov user avatar by
Eugene Toporov
·
Jan. 29, 09 · Interview
Like (0)
Save
Tweet
Share
18.43K Views

Join the DZone community and get the full member experience.

Join For Free

What do you imagine first when you think of a mine? Probably a hole going under ground where everything is pitch-dark and it's difficult to find your way around... But we, ruby "miners", cannot afford to wander the depths of our projects' code with a shimmering torch. Time is worth more than rubies!

Efficient project code navigation is critical, and a key area we focus on in creating the RubyMine IDE. However, since no two projects are alike, and each developer has their own habits and practices, we have designed different sets of navigation commands to suit both keyboard addicts and mouse maniacs. Choose what's right for you, but consider checking the other options, too.

Read on for a quick overview of RubyMine project navigation commands.

Rails Project Views and Navigation Options

It is no secret why many of us use Ruby today — Ruby on Rails! Indeed, this framework does a great job of simplifying web-oriented development. And RubyMine is prepared for the Rails.

First of all, for Ruby on Rails projects RubyMine offers a special Rails Project View, which logically and clearly groups the elements of a Rails project such as Controllers, Models, Helpers, Views, etc.

Click through the nodes of the project view to see what is where in the structure. Also, see the short demo, "Open your 1st Ruby on Rails project" (30 sec).

Model Diagram — Bird's Eye View of Your Rails Project

Sometimes it's useful to step back and take a look at your project as a whole. It can provide a broader picture as things get more complex. For this purpose, RubyMine offers the Model Dependency Diagram, which shows all project models and their associations.

The diagram uses standard UML notation and serves as a map for quick navigation to project files:

You can print the diagram or export it as necessary.
Also check the "Model Dependency Diagram" demo (1 min 15 sec).

Navigate to Rails

No matter what is currently opened in the IDE, you can go to one of the related project entities by using the Navigate to Rails feature or its shortcut, Alt+Shift+N. So, for example, you can jump from a Model to its Controller, from a Controller to its Test, Helper of View, etc. It works everywhere, including the model diagram.

Action <-> View

As you are editing your code, RubyMine provides visual notifications which also serve as navigation options. Action methods in controller have a "gutter" icon pointing to the associated view file. View files also have an icon that opens the associated action when clicked.

If you click the 'view' icon for an action that has no view yet, RubyMine will offer to create the appropriate view file automatically.

Ruby Code Navigation

There are some generic features, not Rails-specific, that also come useful and help increase your productivity.

Go To Class / File

When working on your own project, you often know which file or class you want to open and edit. The fastest way to do this is to use Go to Class... (Ctrl+N) or Go to File... (Ctrl+Shift+N).

 

Both offer very comprehensive functionality. For instance, you can use CamelHumps to save some key presses, or wildcards for file/path matching (see the screenshots above).

Navigation Bar

The Navigation bar, which is located over the editor tabs, shows the path to the currently edited file. It also allows you to navigate within the folder structure and open files for editing. Just press Alt+Home to access the bar using only your keyabord or, alternatively, use your mouse: 



Overridden <-> Overriding

Quickly navigate through class hierarchy using the overridden/overriding gutter navigation icons:

More...

This is by no means an exhaustive list of navigation options available in RubyMine, but then again, there are enough of them to write a whole book. Use the following short list of other "go to..." things that are worth trying and remembering. They are really the things that you'll need daily, if not hourly.

  • Go to symbol
  • Go to declaration
  • Go to super method
  • Quick definition lookup
  • Go to line
  • Context info
  • Parameter info
  • Go to next/previous method

Just open the "Go to" menu and you'll see the whole list.
 

About RubyMine

RubyMine is a dedicated Ruby IDE with great Ruby on Rails support, built with developer productivity in mind.

Development Roadmap

RubyMine is currently in Early Access (EAP), with 1.0 release planned for March 2009. If you are interested to know what we plan to include in RubyMine 1.0 — check the development roadmap.

You can download the latest RubyMine build and find your way through the Ruby code.

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Automated Testing With Jasmine Framework and Selenium
  • 5 Common Firewall Misconfigurations and How to Address Them
  • DeveloperWeek 2023: The Enterprise Community Sharing Security Best Practices
  • How to Use Java Event Listeners in Selenium WebDriver?

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: