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
gerade bearbeitet meinen Code ändern, wo ich es zur Zeit als – bockdavidson
Das einzige Problem ist, wenn ich eine Suche nichts erscheint. Auch wenn die Suche in der Datenbank ist – bockdavidson