지금 Rails 3.2.13을 사용 중입니다. 레일스의 동적 조건으로 데이터를 찾는 방법은 무엇입니까?
나는이 방법을 만들어 :def search
search_conditions = []
search_conditions << ["id = ?", params[:id]] if params[:id] != ''
search_conditions << ["name LIKE ?", "%#{params[:name]}%"] if params[:name] != ''
@users = User.find(:all, :conditions => search_conditions)
end
을하지만 결과였다
undefined method `%' for ["name LIKE ?", "%tes%"]:Array
내가 좋은 방법 여러 조건을 설정할 수 없습니다?
샘플을 제공해 주셔서 감사합니다. 그러나 Rails3에서'find'를 사용하지 말고'where'를 사용해야합니까? Rails3에서'where'를 사용할 때 게으른로드 문제가 아닌가요? –
기본적으로 "where"는 결과 데이터 집합 대신 관계를 반환합니다. 그래서 몇 곳의 체인을 연결하는 것이 훨씬 쉽습니다. 결과를 사용하려면 관계에 대해 먼저 또는 모두 호출하십시오. "어디에서"의 유연성은 Rails 2의 "조건"보다 훨씬 높습니다. 그리고 "find"와 관련된 메소드 중 일부 (또는 많은 것)가 사용되지 않습니다. find (: all)는 Rails 4.1에서 오류 메시지를 반환합니다. – roob