Link

This component is used to either navigate within your matestack application or to navigate to outside URLs.

Parameters

This component creates an <a>-tag and expects a mandatory path input and optional options parameters.

path

If the path input is a string it just uses this string for the link target.

If the path input is a symbol (e.g. :root_path) it calls the Rails url helper method in order to generate the link target

You can also just use the Rails url helper methods directly. They will return a string which is then used as the link target without any further processing.

text (optional)

The text that gets wrapped by the <a>-tag. If no text is given the link component looks for further arguments within itself (see examples below).

id (optional)

Expects a string with all ids <a>-tag should have.

class (optional)

Expects a string with all classes <a>-tag should have.

method (optional, default is get)

The HTTP request method the link should implement.

target (optional, default is nil)

Specify where to open the linked document.

title (optional)

Specify a title for the link (shown on mouseover).

Example 1

This example renders a simple link within a <div-tag

div id: "foo", class: "bar" do
  link path: "https://matestack.org", text: "Here"
end

and returns

<div id="foo" class="bar">
  <a href="https://matestack.org">Here</a>
</div>

Example 2

This example renders a link without a specific link-text, so it wraps the rest of its content.

div id: "foo", class: "bar" do
  link path: "https://matestack.org", title: "The matestack website" do
    plain "Here"
  end
end

returns

<div id="foo" class="bar" title="The matestack website">
  <a href="https://matestack.org">Here</a>
</div>

Example 3

This example renders a link around a div and the link opens in a new tab.

div id: "foo", class: "bar" do
  link path: "https://matestack.org", target: "_blank" do
    div do
      plain "Here"
    end
  end
end

returns

<div id="foo" class="bar">
  <a target="_blank" href="https://matestack.org">
    <div>Here</div>
  </a>
</div>

Example 4

This example renders a link with a get request to the root_path within your Rails application.

div id: "foo", class: "bar" do
  link path: :root_path do
    plain "Here"
  end
end

returns

<div id="foo" class="bar">
  <a href="/">
    Here
  </a>
</div>

Example 5 - path from symbol

This example renders a link with a get request to any within your Rails application. In case you want to switch between pages within one specific matestack app, using the transition component probably is a better idea though!

div id: "foo", class: "bar" do
  link path: :inline_edit_path, text: 'Click to edit'
end

returns

<div id="foo" class="bar">
  <a href="/inline_edit">Click to edit</a>
</div>

Example 6 - path from symbol with params

You can also dynamically create paths from symbols and params, as displayed below:

div id: "foo", class: "bar" do
  link path: :single_endpoint_path, params: {number: 1}, text: 'Call API endpoint 1'
end

returns

<div id="foo" class="bar">
  <a href="/api/single_endpoint/1">Call API endpoint 1</a>
</div>

Example 7 - path via Rails path helper method

You can also used Rails path helper methods:

div id: "foo", class: "bar" do
  link path: single_endpoint_path(number: 1), text: 'Call API endpoint 1'
end

returns

<div id="foo" class="bar">
  <a href="/api/single_endpoint/1">Call API endpoint 1</a>
</div>

Last updated