Rails, как использовать link_to для внешнего сайта, а также с помощью блока? - PullRequest
0 голосов
/ 21 мая 2018

Я пытаюсь использовать link_to с блоком, а также для связи с внешним веб-сайтом, я уже знаю, как использовать link_to, чтобы сделать мой div кликабельным (извлечено здесь) , а также использовать link_to дляотправить пользователя на другой сайт (узнал отсюда) , но когда я пытаюсь объединить эти два подхода, я получаю сообщение об ошибке:

undefined method 'stringify_keys' for "www.google.com":String

Вот мой HTML.код erb:

<%= link_to @slides[0].link, "#{@slides[0].link}", target: "_blank"  do %>
  <div class="carousel-item active">
    <%= image_tag @slides[0].slide_image.thumb.url, class: "d-block w-100", alt: @slides[0].image_text %>
    <div class="carousel-caption d-none d-md-block">
      <h5><%= @slides[0].image_text %></h5>
    </div>
  </div>
<% end %>

Я тоже пробовал:

<%= link_to @slides[0].link do %> # or
<%= link_to "#{@slides[0].link}", :target => "_blank" do %>
# I got the same error

<%= link_to url_for(@slides[0].link) do %>
# above I got localhost:3000/https://google.com insted of https://google.com

Кто-нибудь знает, как это сделать?

1 Ответ

0 голосов
/ 21 мая 2018

link_to с блоком работает следующим образом:

link_to(url, html_options = {}) do
  # block
end

link_to source помощника

Так что вам просто нужно сделать:

<%= link_to @slides[0].link, target: "_blank"  do %>
  #block
<% end %>

(при условии @slides[0].link == "https://google.com" то есть действительный внешний URL)

...