How do I wrap link_to around some html ruby code?

后端 未结 5 1747
天命终不由人
天命终不由人 2020-12-02 07:09

How do I wrap a link around view code? I can\'t figure out how to pass multiple lines with ruby code to a single link_to method. The result I am looking for is

相关标签:
5条回答
  • 2020-12-02 08:03

    For older Rails versions, you can use

    <% content_tag(:a, :href => foo_path) do %>
      <span>Foo</span>
    <% end %>
    
    0 讨论(0)
  • 2020-12-02 08:04

    A bit of a lag on this reply I know -- but I was directed here today, and didn't find a good answer. The following should work:

    <% link_to raw(html here), @album %>
    
    0 讨论(0)
  • 2020-12-02 08:07

    You can use link_to with a block:

    <% link_to(@album) do %>
        <!-- insert html etc here -->
    <% end %>
    
    0 讨论(0)
  • 2020-12-02 08:09

    link_to takes a block of code ( >= Rails 2.2) which it will use as the body of the tag.

    So, you do

    <%= link_to(@album) do %>
      html-code-here
    <% end %>
    

    But I'm quite sure that to nest a div inside a a tag is not valid HTML.

    EDIT: Added = character per Amin Ariana's comment below.

    0 讨论(0)
  • 2020-12-02 08:09

    Also, this may be an issue for some:

    Make sure to write <%= if you are doing a simple link with code in it instead of <%.

    e.g.

    <%= link_to 'some_controller_name/some_get_request' do %>
      Hello World
    <% end  %>
    
    0 讨论(0)
提交回复
热议问题