Я пытаюсь реализовать поиск на странице индекса. Однако это влияет на вложенный маршрут отдельной записи, когда я добавляю код. [Я пробовал гемы, используя elsif и все, что только мог придумать].
Для контекста я использую книги, принадлежащие сценарию авторов.
Я хотел бы реализовать это:
@comicbooks = Comicbook.search(params[:search])
здесь:
def index
@comicbooks = @comicbooks.filter_by_name(params[:name])
if params[:person_id]
person = Person.find_by(id: params[:person_id])
@comicbooks = person.comicbooks
else
@comicbooks = Comicbook.all
end
end
Вот моя модель:
class Comicbook < ApplicationRecord
belongs_to :person
belongs_to :squad
validates :title, presence: true, uniqueness: { scope: :person }
def self.search(search)
if search
find(:all, :conditions => ['name Like ?', "%#{:search}%"])
else
find(:all)
end
end
def person_attributes=(args)
self.person = Person.find_or_create_by(args)
end
def squad_attributes=(args)
self.squad = Squad.find_or_create_by(args)
end
end
Вот форма поиска в представлении
<%= form_tag comicbooks_path, :method => :get do %>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search" , :name => nil %>
<% end %>
Какой лучший способ реализовать поиск, не выбрасывая другие маршруты? Я пробовал много драгоценных камней, но они усложнили вещи больше, чем я могу понять.
Заранее спасибо.