adorable-france-99527
08/05/2023, 8:05 PMransackable_attributes method, and if it's missing, the search query will fail silently. I don't know whether this is just something that should be in the documentation, or if Avo can catch it and provide a warning, but I know that Avo 3 requires Ransack, so it's a reasonable heads-up.lemon-wall-20836
08/05/2023, 8:06 PMlemon-wall-20836
08/05/2023, 8:06 PMlemon-wall-20836
08/05/2023, 8:07 PMlemon-wall-20836
08/05/2023, 8:07 PMadorable-france-99527
08/05/2023, 8:08 PMadorable-france-99527
08/05/2023, 8:08 PMlemon-wall-20836
08/05/2023, 8:09 PMadorable-france-99527
08/05/2023, 8:09 PMadorable-france-99527
08/05/2023, 8:09 PMlemon-wall-20836
08/05/2023, 8:10 PMlemon-wall-20836
08/05/2023, 8:10 PMlemon-wall-20836
08/05/2023, 8:11 PMlemon-wall-20836
08/05/2023, 8:11 PMadorable-france-99527
08/05/2023, 8:11 PMlemon-wall-20836
08/05/2023, 8:12 PMavo-advanced_filtersadorable-france-99527
08/05/2023, 8:12 PMUser.ransack(params[:q]).result should just work, but it does not.lemon-wall-20836
08/05/2023, 8:12 PMlemon-wall-20836
08/05/2023, 8:13 PMadorable-france-99527
08/05/2023, 8:14 PMadorable-france-99527
08/05/2023, 8:14 PM> User.ransackable_attributes
=> ["username", "first_name", "last_name", "phone", "is_employer", "uuid"]adorable-france-99527
08/05/2023, 8:14 PM> User.ransack("jcn").result.to_sql
=> "SELECT \"users_user\".* FROM \"users_user\""adorable-france-99527
08/05/2023, 8:15 PM> User.ransack(username_cont: "jcn").result.to_sql
=> "SELECT \"users_user\".* FROM \"users_user\" WHERE \"users_user\".\"username\" ILIKE '%jcn%'"adorable-france-99527
08/05/2023, 8:15 PM.ransack to search against all ransackable_attributeslemon-wall-20836
08/05/2023, 8:15 PMadorable-france-99527
08/05/2023, 8:15 PMadorable-france-99527
08/05/2023, 8:15 PMlemon-wall-20836
08/05/2023, 8:16 PMadorable-france-99527
08/05/2023, 8:16 PMq a giant data structure?lemon-wall-20836
08/05/2023, 8:16 PMransackable_attributes were an afterthought added after the security issues surfaced a while backlemon-wall-20836
08/05/2023, 8:16 PMlemon-wall-20836
08/05/2023, 8:16 PMadorable-france-99527
08/05/2023, 8:18 PMlemon-wall-20836
08/05/2023, 8:21 PMlemon-wall-20836
08/05/2023, 8:21 PMlemon-wall-20836
08/05/2023, 8:22 PMrans_attributes, but you are more sure on what's happening there instead of relying on what ransack it's doing in the backgroundadorable-france-99527
08/05/2023, 8:24 PMquery.ransack(company_name_cont: params[:q], user_first_name_cont: params[:q], user_last_name_cont: params[:q], user_phone_cont: params[:q], user_username_cont: params[:q], requester_first_name_cont: params[:q], requester_last_name_cont: params[:q], requester_phone_cont: params[:q], requester_username_cont: params[:q], m: "or").result(distinct: false)adorable-france-99527
08/05/2023, 8:24 PMlemon-wall-20836
08/05/2023, 8:25 PMrans_attrs and rans_assoc, adds the prefix and spits out those argumentslemon-wall-20836
08/05/2023, 8:25 PMquery.ransack(compile_ransack_attributes_for(User)).result(distinct: true)adorable-france-99527
08/05/2023, 8:26 PMlemon-wall-20836
08/05/2023, 8:26 PMcompile_ransack_attributes_for goes into that model and created thoselemon-wall-20836
08/05/2023, 8:26 PMlemon-wall-20836
08/05/2023, 8:26 PMadorable-france-99527
08/05/2023, 8:26 PMlemon-wall-20836
08/05/2023, 8:27 PM