Ich habe eine Keyword-Suchseite, für die die Ergebnisse in einer Tabelle dargestellt werden. Eines der Felder in dieser Tabelle ist eine URL, die ich als klickbaren Link anzeigen möchte, wenn das Feld eine hat, aber ich kann nicht funktionieren, wenn der Link angeklickt wird, fragt sie stattdessen die Suche erneut ab. Ich denke, das Problem liegt an der Def innerhalb der Such-Controller mit der Keywordsearch-Ansicht zu tun. Kann jemand helfen?Rails Suche Tabelle klickbaren Link
Unten ist die Stichwortsuche Ansicht, die die Ergebnisse Tabelle enthält:
<!-- 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>
unten Teil der Suchsteuerung in dem Schlüsselwortsuche definiert ist:
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
Der Link von all der ist, klickbar, aber anstatt mich zur richtigen URL zu bringen, wird die Suche neu gestartet.
enthalten ist. Das behebt das alte Problem, bringt aber ein neues. Die URL ist jetzt am Ende der Webseite enthalten, aber nicht als separate Verknüpfung. Ein Beispiel Link wäre http://www.abdn.ac.uk/study/courses/undergraduate/L600/ - mit http: // www. auch am Anfang. Aber anstatt dorthin zu gehen, fügt man einfach /%22http://www.abdn.ac.uk/study/courses/undergraduate/L600/%22 zum Ende des Links hinzu. Jede Hilfe wird geschätzt. – Akamaru
scheint das Problem das fehlende Protokoll (http: //) in der URL. Sie haben zwei Möglichkeiten: 1) bearbeiten Sie alle URLs in Ihrer Datenbank, um http: // oder 2) zu enthalten, machen Sie etwas wie "link_to" link text ', "http: // # {degree.url}" ' – davideghz
Sorry, ich konnte nicht Finde nicht heraus, wie das Protokoll auf dem Kommentar erscheinen soll. Das Protokoll ist in der Datenbank vorhanden. – Akamaru