У меня есть страница расширенного поиска с отдельным контроллером поиска для моих контрактов.В настоящее время я получаю сообщение об ошибке на своей странице показа (результаты поиска), поскольку недавно изменил свой метод в search.rb, поэтому он отображает только записи, относящиеся к current_user.
Я использую Devise.
Ниже мой search.rb
class Search < ActiveRecord::Base
def self.user_search_contracts(user)
user ||= User.new
contracts = Contract.where(user_id: user.id)
contracts = contracts.joins(:tenant).where(["tenants.first_name LIKE ? OR tenants.last_name LIKE ?", "%#{keywords}%", "%#{keywords}%"]) if keywords.present?
contracts = contracts.where(["balance >= ?", min_balance]) if min_balance.present?
contracts = contracts.where(["balance <= ?", max_balance]) if max_balance.present?
contracts = contracts.where(["unpaid_rent LIKE ?", unpaid_rent]) if unpaid_rent.present?
return contracts
end
end
показать страницу для поиска
.wrapper_with_padding
#houses.clearfix
- unless @search.user_search_contracts.blank?
- @search.user_search_contracts.each do |contract|
%a{ href: (url_for [contract])}
.house
%p.end_of_contract= contract.end_of_contract
%p.balance= number_to_currency(contract.balance, :unit => "£", negative_format: "(%u%n)")
-if contract.tenant.present?
%p.tenant_id= contract.tenant.full_name
-else
%p No Tenant Assigned
-if contract.house.present?
%p.house_id= contract.house.full_house_name
-else
%p No Property Assigned
Ошибка: неопределенный метод `user_search_contracts 'для #