簡體   English   中英

每個 do 循環中的 link_to 塊不起作用

[英]link_to block inside a each do loop not working

我正在嘗試呈現一個表,其列是 subreddit 標題並具有指向每個 subreddit 的鏈接。 但是,這不會生成鏈接。 我想讓整行成為鏈接,而不是特定的單元格。 有什么問題?

    <% @subreddits.each do |subreddit| %>
      <tr>
        <%= link_to subreddit do %>
          <td><%= something else %></td>
          <td><%= subreddit.title %></td>
        <% end %>
      </tr>
    <% end %>

您將鏈接包裹在<td>元素周圍 <td>包裹在鏈接周圍。

<% @subreddits.each do |subreddit| %>
  <tr>
    <td>
      <%= link_to(subreddit.title, subreddit) %>
    </td>
  </tr>
<% end %>

如果你想讓整個<td>成為一個鏈接,你必須使用上面的代碼加上這樣的東西:

https://stackoverflow.com/a/6459846/2456549


更新

看起來您更新了您的問題以添加額外的<td> s。 看起來您現在想讓<tr>成為鏈接。 完成此操作的最佳方法可能是僅使用 JavaScript。 請參閱下面的鏈接以獲取解決方案。 我也會添加 CSS 以便<tr>有一個尖頭光標,以改進用戶體驗。

如何使表格中的整行可點擊作為鏈接?


我已經在這里添加了完整的解決方案,不需要像 jQuery 這樣的依賴項,當然,它是用 ES6 編寫的,因此如果需要,請將const更改為var 請注意,它尚未經過測試。

# ERB
<tr class="cursor-pointer"
  data-behavior="clickable-row"
  data-url="<%= subreddit_url(subreddit) %>">
  <td><%= something else %></td>
  <td><%= subreddit.title %></td>
</tr>

// javascript
const clickableRows = document.querySelectorAll('[data-behavior=clickable-row]');

clickableRows.addEventListener('click', event => {
  window.location = event.currentTarget.dataset.url;
});

# css
.cursor-pointer { cursor: pointer; }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM