Use of link_to tag in Rails 6

Ashvin Choudhary
3 min readJul 6, 2023
link_to tag use in Rails 6

Ruby on Rails is renowned for its ability to simplify web development by providing a plethora of handy features and conventions. One such feature is the `link_to` tag, which plays a crucial role in generating links and enhancing user experience in Rails applications. In this blog post, we’ll explore the versatility and functionality of the `link_to` tag in Rails 6, accompanied by practical code examples.

  1. Basic Syntax and Usage:
    The `link_to` tag is primarily used to generate HTML links in Rails applications. Its basic syntax follows this pattern:
<%= link_to “Link Text”, path_or_url %>

Here, “Link Text” represents the text displayed for the link, while `path_or_url` denotes the path or URL to be linked.

Example:
Suppose we have a `posts` resource with a `show` action. To generate a link to a specific post, we can use the `link_to` tag as follows:

<%= link_to “View Post”, post_path(@post) %>

This code generates an anchor tag with the link text “View Post,” pointing to the show action of the post resource with the corresponding @post object.

2. Adding HTML Options:
The `link_to` tag provides flexibility by allowing us to add HTML options to the generated link. These options can include CSS classes, inline styles, data attributes, and more.

Example:
Let’s say we want to add a CSS class to our link. We can achieve this by including the `class` option in the `link_to` tag:

<%= link_to “View Post”, post_path(@post), class: “btn btn-primary” %>

Here, the `class: “btn btn-primary”` option adds the classes “btn” and “btn-primary” to the link, enhancing its visual appearance.

3. Linking to External URLs:
The `link_to` tag is not limited to internal routes and resources. It can also generate links to external URLs.

Example:
Suppose we want to link to the OpenAI website. We can use the `link_to` tag with the URL as the second argument:

<%= link_to “OpenAI”, “https://www.openai.com" %>

This code generates a link with the text “OpenAI,” which redirects users to the OpenAI website when clicked.

4. Additional Options:
The `link_to` tag offers a wide range of additional options to further customize the generated links. Some commonly used options include:

- `method`: Specifies the HTTP method used for the request (e.g., `:get`, `:post`, `:patch`, `:delete`). Useful for creating links that trigger specific actions.
- `target`: Defines where the link should open (e.g., `_blank` for a new tab/window).
- `data`: Allows passing custom data attributes to the link.

Example:
Let’s say we have a `delete` action for posts and want to generate a link that triggers this action when clicked. We can use the `method` option to achieve this:

<%= link_to “Delete Post”, post_path(@post), method: :delete, data: { confirm: “Are you sure?” } %>

This code generates a link with the text “Delete Post.” When clicked, it triggers the `delete` action for the corresponding post. The `data` option includes a confirmation message to ensure the user’s intent.

Conclusion:

The link_to tag is an invaluable tool in Rails 6, enabling developers to generate dynamic and interactive links effortlessly. From basic link generation to advanced customization, the link_to tag provides a straightforward and concise syntax. By exploring its various options, you can enhance user experience and streamline navigation within your Rails applications.

In this blog post, we covered the basic syntax and usage of the link_to tag, demonstrating how to generate links to internal resources. We also explored how to add HTML options to the generated links, such as CSS classes, to improve their visual appearance. Additionally, we discussed how to generate links to external URLs, expanding the reach of your application beyond internal routes.

Furthermore, we highlighted additional options available with the link_to tag, such as the ability to specify HTTP methods, define link targets, and pass custom data attributes. These options allow you to create more complex and interactive links, such as links that trigger specific actions or provide confirmation messages.

By harnessing the power of the link_to tag in Rails 6, you can create seamless and user-friendly navigation throughout your application. Experiment with the provided code examples and explore the official Rails documentation to discover additional features and possibilities for customization.

Remember, the link_to tag is just one of the many features Rails offers to simplify web development. Continually expanding your knowledge of Rails and its extensive toolkit will enable you to build robust and efficient web applications with ease.

Happy coding!

--

--

Ashvin Choudhary

Ashvin Choudhary is an AWS Certified Senior Software Engineer with 8+ years of experience. He's enthusiastic about tech and believes in lifelong learning.