Witam,
mam problem z implementacją mechanizmu wyszukiwarki w RoR.
Mam kontroler i model nazwany Search, który wyszukuje danych z tabeli users. Wygląda to tak:
kontroller:
# (...)
def results
@results = Search.users
end
model:
[code]class Search< ActiveRecord::Base
def users
@users ||= find_users
end
private
def find_users
User.find(:all, :conditions => conditions)
end
def gender_conditions
[“user.gender = ?”, gender] unless gender.blank?
end
def minimum_age_conditions
[“user.birthday >= ?”, minimum_age] unless minimum_age.blank?
end
def maximum_age_conditions
[“user.birthday <= ?”, maximum_age] unless maximum_age.blank?
end
def conditions
[conditions_clauses.join(’ AND '), *conditions_options]
end
def conditions_clauses
conditions_parts.map { |condition| condition.first }
end
def conditions_options
conditions_parts.map { |condition| condition[1…-1] }.flatten
end
def conditions_parts
private_methods(false).grep(/_conditions$/).map { |m| send(m) }.compact
end
end[/code]
Po wysłaniu formularza z danymi, otrzymuję
NoMethodError in SearchController#results
undefined method `users' for Search(id: integer, created_at: datetime, updated_at: datetime):Class
zdefiniowałem nawet na chwilę
def testuj
return true
end
ale z podobnym wynikiem - co do tabeli search- zdaję sobie sprawę, że jest niepotrzebna, dlatego napewno wyleci, jak tylko uporam się z tym problemem…