2016-08-03 21 views
1

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.

Antwort

0

versuchen, dies statt hartzucodieren die <a> tag:

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

Können Sie auch eine Probe von URL posten? Stellen Sie sicher, dass das Protokoll (z. B. http://...)

+0

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

+0

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

+0

Sorry, ich konnte nicht Finde nicht heraus, wie das Protokoll auf dem Kommentar erscheinen soll. Das Protokoll ist in der Datenbank vorhanden. – Akamaru