2017-05-26 5 views
0

Ich versuche, eine Suchleiste für eine Datenbank-Website, die ich erstellt habe, ich habe ein Tutorial gefunden und ich denke, ich habe es richtig gemacht.Schienen: Suchleiste funktioniert nicht

Wenn ich eine Suche, wie "Judy Zhang", zeigt nichts, auch wenn es in der Datenbank

meine vendor.rb/Anliegen/models/app-Datei

class Vendor < ApplicationRecord 
    has_many :fotos  

    def self.search(search) 
    if search 
     Vendor.where('lower(contact_name) LIKE ?', "'%#{search.downcase}%'") 
    else 
     Vendor.all 
    end 
    end 
end 

Ich glaube, ich habe das Kodierungsrecht nicht gemacht. Sehr neu zu Rubin auf Schienen. Was habe ich hier falsch gemacht?

Code für index.html.erb/Anbieter/Ansichten/Layouts/app

<body> 
    <div class = "head"> 
     <h1>Vendors </h1> 
     <div class = "image1" > 
      <img src= "http://dx.deucex.com/i/logo.png" > 
     </div> 
    </div> 

    </body> 
    <table> 
     <tr> 
      <%= button_to "New Vendor", new_vendor_path, :method => "get" %> 
      <%= button_to "Inventory", inventories_path, :method => "get" %> 

      <%= form_tag vendors_path, :method => 'get' do %> 
      <%= text_field_tag :search, params[:search] %> 
      <%= submit_tag "Search", :name => nil %> 
      <% end %> 

     </tr> 
    </table> 

<table> 
    <tr> 
     <th>Company</th> 
     <th>Contact Name</th> 
     <th>Phone</th> 
     <th>Email</th> 
    </tr> 

    <% for vendor in @vendors %> 

    <tr> 
     <td><%= vendor.company %></td> 
     <td><%= vendor.contact_name %></td> 
     <td><%= vendor.phone %></td> 
     <td><%= vendor.email %></td> 
     <body> 
      <div class = "button1" > 
       <td><%= button_to "Show", vendor_path(vendor), :method => "get" %></td> 
      </div> 
     </body> 

     <td><%= button_to "Edit", edit_vendor_path(vendor), :method => "get" %></td> 
      <div class = "button3"> 
       <td><%= button_to 'Delete', 
           vendor_path(vendor), 
           method: :delete, 
           data: { confirm: 'Are you sure?'} %></td> 
      </div> 

    </tr> 
    <% end %> 
</table> 

Code für mein VendorsController.rb/Bedenken/Controller/app

class VendorsController < ApplicationController 
    def index 
     @vendors = Vendor.search(params[:search]) 
    end 
    def show 
     @vendor = Vendor.find(params[:id]) 
    end 

    def new 
     @vendor = Vendor.new 
    end 

    def create 
     @vendor = Vendor.new(vendor_params) 

     if @vendor.save 
      redirect_to @vendor 
     else 
      render 'new' 
     end 
    end 

    def edit 
     @vendor = Vendor.find(params[:id]) 
    end 

    def update 
     @vendor = Vendor.find(params[:id]) 
     if @vendor.update (vendor_params) 
      redirect_to @vendor 
     else 
      render 'edit' 
     end 
    end 

    def destroy 
     @vendor = Vendor.find(params[:id]) 
     @vendor.destroy 

     redirect_to vendors_path 
    end 
end 

private 
    def vendor_params 
     params.require(:vendor).permit(:company, :contact_name, :phone, :email, :moq, :cost_per_item, :payment_method, :terms, :turnover, :returns, :notes) 
    end 
+0

gerade bearbeitet meinen Code ändern, wo ich es zur Zeit als – bockdavidson

+0

Das einzige Problem ist, wenn ich eine Suche nichts erscheint. Auch wenn die Suche in der Datenbank ist – bockdavidson

Antwort

0

Versuchen Sie, den Code zu ändern in Vendor zu

class Vendor < ApplicationRecord 
    has_many :fotos  

    def self.search(search) 
    if search 
     Vendor.where('lower(name) LIKE ?', "'%#{search.downcase}%'") 
    else 
     Vendor.all 
    end 
    end 
end 

Meine Suchleiste zeigt nach oben nicht

Sie sollten die folgende

<% form_tag vendors_path, :method => 'get' do %> 

zu

<%= form_tag vendors_path, :method => 'get' do %> 
# Notice that <%= %> evaluates and prints the output 
+0

Danke! Aber irgendwie erscheint meine Suchleiste nicht – bockdavidson

+0

Ich habe jetzt einen neuen Fehler, nur den anderen Fehler behoben – bockdavidson

+0

ok, nur behoben, aber wenn ich eine Suche, zum Beispiel "Zhang", die in der Datenbank ist, nichts zeigt – bockdavidson

Verwandte Themen