【问题标题】:Rails search table clickable linkRails 搜索表可点击链接
【发布时间】:2016-12-09 05:47:19
【问题描述】:

我有一个关键字搜索页面,其结果显示在表格中。此表中的一个字段是一个 url,当该字段中有一个但我无法使其正常工作时,我想将其显示为可单击的链接,当单击该链接时,它会再次查询搜索。我认为问题是由于搜索控制器中的 def 处理关键字搜索视图。有人可以帮忙吗?

下面是包含结果表的关键字搜索视图:

<!-- Index of all Courses -->
<% provide(:title, "Courses Page") %>


<!--Breadcrumbs -->
<br>
<%= link_to "Back", :back %><br><br>

<!--Page Contents --> 


  <div class ="row">
    <h1>Degrees Offered</h1>
    <%= image_tag "line.png" , :alt => "line break"%>    
  </div>

  <div class ="row">

      <!-- Form for Keyword Search, to query database for University courses. It is hidden so as to not appear as a search on the page -->
      <div class = "hidden">         
      <%= form_tag(keywordsearch_path, :method => "get", id: "search-data") do %>
      <%= text_field_tag :search, params[:search], placeholder: "Search course" %>
      <%= submit_tag "Search" %>
      <% end %>
      </div>     
      <% if @search_degree != nil %>
      <% end %>

      <% if @search_degree != nil %>
        <table border="1" class="table">
          <thead>
            <tr>
              <th>University Name</th>
              <th>Course Name</th>
              <th>Duration</th>
              <th>Qualification</th>
              <th>Entry Requirements</th>
              <th>Course Page</th>
            </tr>
          </thead>
          <tbody>
            <% @search_degree.each do |degree| %>
            <tr>
              <td><%= degree.uname %></td>
              <td><%= degree.cname %></td>
              <td><%= degree.duration %></td>
              <td><%= degree.qualification %></td>
              <td><%= degree.entry %></td>
              <td> <a href=<% degree.url %>>View course page on University Website</a></td>
            </tr>
            <% end %>
          </tbody>
        </table>
      <% end %>
    </div>

下面是定义关键字搜索的部分搜索控制器:

  def keywordsearch
    @search = Degree.all.select(:uname, :cname, :ucas, :duration, :qualification, :entry).distinct.order(id: :ASC)
    if params[:search]
      @search_degree = Degree.search(params[:search]).order('uname ASC')
    end
  end

所有这一切的链接都是可点击的,但它不会将我带到正确的网址,而是重做搜索。

【问题讨论】:

    标签: ruby-on-rails ruby search hyperlink


    【解决方案1】:

    试试这个,而不是硬编码&lt;a&gt; tag

    <%= link_to 'View course page on University Website', degree.url %>
    

    您还可以发布网址示例吗?请务必包含协议(例如,http://..。)

    【讨论】:

    • 解决了旧问题,但带来了新问题。该网址现在包含在网页的末尾,但不是作为单独的链接。一个示例链接是abdn.ac.uk/study/courses/undergraduate/L600 - 与www。一开始也是。但不是去那里它只是添加 /%22http://www.abdn.ac.uk/study/courses/undergraduate/L600/%22 到链接的末尾。任何帮助表示赞赏。
    • 似乎问题在于 URL 中缺少协议 (http://)。您有两个选择:1)编辑数据库中的所有网址以包含 http:// 或 2)执行类似 link_to 'link text', "http://#{degree.url}" 的操作
    • 抱歉,我不知道如何让协议显示在评论中。该协议存在于数据库中。
    • 我认为错误与我在url前后看到的双引号“有关,因此rails看不到正确的完整链接并将其解释为相对路径,但我真的不明白他们为什么在那里:(
    • 是的,这就是问题所在,数据库中的双引号。删除这些后,您的最后一个建议很有效,我猜您的第一个建议也可能会。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2011-09-23
    • 2014-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-12
    • 1970-01-01
    • 2021-01-23
    相关资源
    最近更新 更多