У меня возникли проблемы с внедрением Sunspot! В течение последних 2 дней я пытался заставить это работать, и я не могу найти никакого решения (хотя, без сомнения, он смотрел мне в лицо!).
Я хочу, чтобы пользователь мог искать производителя автомобилей. Когда автомобиль создается, ему через ассоциацию назначается производитель (как вы можете видеть ниже). Теперь .. как мне разрешить пользователю вводить в поле поиска (или даже лучше collection_select всех производителей), и он отфильтрует результат?
В идеальном мире я бы хотел, чтобы это работало как мой поиск:
<%= simple_form_for :search, url: vehicles_path , :method => :get do |f| %>
<%= select_tag :manufacturer, options_from_collection_for_select(Manufacturer.all, :id, :name) %>
<%= submit_tag "Search", :name => nil %>
<% end %>
Но, увы, я не смог найти решение в своей модели автомобиля.
Если это имеет для вас какой-то смысл, я надеюсь, вы сможете вести меня в правильном направлении!
Спасибо большое!
class Vehicle < ActiveRecord::Base
belongs_to :manufacturer
searchable do
text :name, :registration
integer :manufacturer_id
end
def to_s
self.name
end
end
потом
class VehiclesController < ApplicationController
before_action :set_vehicle, only: [:show, :edit, :update, :destroy]
def index
@manufacturer = Manufacturer.all
@search = Vehicle.search do
fulltext params[:search]
end
@vehicles = @search.results
end
end
а также
class Manufacturer < ActiveRecord::Base
has_many :vehicles
searchable do
text :name
end
def to_s
self.name
end
end
Автомобиль index.html.erb
<%= form_tag vehicles_path, :method => :get do %>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search", :name => nil %>
<% end %>
И моя форма автомобиля
<%= simple_nested_form_for @vehicle, :html=>{:multipart => true } do |f| %>
<%= f.error_notification %>
<div class="form-inputs">
<%= f.input :name %>
<%= f.association :manufacturer, include_blank: false %>
</div>
<div class="form-actions">
<%= f.button :submit %>
</div>
<% end %>
Я удалил большую часть ненужного в своих примерах просто для простоты.
И просто для смеха вы можете посмотреть на мои неудачные попытки!
Я также запускал так много солнечных пятен граблями: переиндексировать это безумие.
#integer :manufacturer_id, :multiple => true
#integer :manufacturer_id, :references => Manufacturer, :multiple => true
#integer :manufacturer_id, :references => Manufacturer, :multiple => true do
# manufacturers.map {|manufacturer| manufacturer.manufacturer_name}
#end
#text :manufacturer_names do |manufacturer|
# manufacturer.name { |manufacturer| manufacturer.name }
#end
#integer :manufacturer_id {|manufacturer| manufacturer.name }
#string :manufacturer_name do
# manufacturer.name { |manufacturer| manufacturer.name }
#end
#text :manufacturers do
# manufacturers.map { |manufacturer| manufacturer.name }
#end
#integer :manufacturer_id, :stored => true