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_filters
adorable-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