Я использую поиск, и у меня возникли некоторые трудности с моим sql / find.
По сути, у меня есть страница избранного, которая получает коллекцию избранного с:
@favorites = current_user.votes
В представлении я затем перебираю список избранных и могу вызывать .voteable для них, чтобы получить реальный объект, за который проголосовали.Это делает поиск очень трудным для меня, чтобы писать.
Мне было интересно, можно ли было изменить мою первоначальную коллекцию, так что я на самом деле получаю .voteable объекты каждый раз, чтобы высушить мой взгляд / помощьмне написать мой поиск.Я не могу вызвать current_user.votes.voteables, но по отдельности могу сделать что-то вроде current_user.votes.first.voteable
То, что я пытался сделать, - это такой цикл:
@favorites = current_user.votes.each {|vote| vote.voteable }
Что не таки я просто снова получаю свои голоса, а не фактический объект для голосования.Мне было просто интересно, есть ли способ заставить эти бюллетени для голосования пройтись по моим голосам вот так.
Любые указатели помогут, спасибо.
РЕДАКТИРОВАТЬ:
Расширение, чтоЯ имею в виду под поиском:
Я строю метод в модели, которая ищет себя, вот пример:
def self.search(search)
if search
where('title LIKE ?', "%#{search}%")
else
scoped
end
end
Я передаю в поиске из вида с формой, подобной:
<div id="search_form">
<%= form_tag topic_links_path, :method => 'get', :id => "links_search" do %>
<%= text_field_tag :search, params[:search], :size => "35" %>
<%= submit_tag "Search", :name => nil %>
<% end %>
</div>
Таким образом, когда я делаю свою коллекцию в контроллере, я могу вызвать .search (params [: search]), чтобы получить только те элементы, которые похожи на то, что пользователь ввел в форму.Я использую камень voice_fu для обработки голосов и голосов.