Wenn das von ransackable_scopes
an scope
übergebene Argument den folgenden Wert hat
ArgumentError wrong number of arguments (given 0, expected 1)
Seien Sie vorsichtig, da es passieren wird! !! !!
"true"
, "TRUE"
, "t"
, "T"
, 1
, "1"
"false"
,"FALSE"
,"f"
,"F"
,0
,"0"
Diese Werte werden ** implizit ** in True bzw. False konvertiert ** und können nicht als Argumente übergeben werden.
config/initializers/ransack.rb
Ransack.configure do |config|
config.sanitize_custom_scope_booleans = false
end
Fügen Sie dies einfach hinzu und Sie können alle oben genannten Werte übergeben **. [^ 1]
** Bitte gib auf. ** ** **
Der implizit konvertierte Wert lautet Ransack :: Constants :: BOOLEAN_VALUES
Definiert in [^ 2].
Diese Konstante ist "Einfrieren".
Nach Angaben des Beamten gibt es keine Möglichkeit, ein "Einfrieren" -Objekt ** einzufrieren **. [^ 3]
There is no way to unfreeze a frozen object.
Ich habe viel recherchiert, um die zu konvertierenden Werte anzupassen, konnte es aber nicht. .. .. Vorerst wurde PR des Inhalts "Ich habe es möglich gemacht, den Wert anzupassen, der implizit konvertiert werden soll!" zusammengeführt. .. Demnach können Sie den zu konvertierenden Wert wie folgt anpassen.
Ransack.configure do |config|
config.truthy_values_to_convert_in_custom_scopes = ['TRUE', 'true', '1']
config.falsey_values_to_convert_in_custom_scopes = ['FALSE', 'no way no how']
end
** Der folgende Fehler ist jedoch aufgetreten, auch wenn ich ihn so geschrieben habe, wie er war. ** ** **
=> NoMethodError: undefined method `truthy_values_to_convert_in_custom_scopes' for Ransack:Module
**Was! ?? !! ?? !! ?? !! ?? !! ?? !! ?? !! ?? !! ?? !! ?? !! ?? !! ?? !! ?? ** ** ** Ich habe [Inhalte der PR-Implementierung] überprüft (https://github.com/activerecord-hackery/ransack/pull/742/files), aber die in der Übersicht beschriebenen Inhalte wurden nicht implementiert. .. .. .. Bitte lassen Sie mich wissen, wenn jemand hier weiß. .. ..
Außerdem hat @t_oginogin eine Lösung vorgeschlagen, die Ransack nicht verwendet. Bitte beziehen Sie sich entsprechend Ihrem Implementierungsstatus darauf. https://qiita.com/t_oginogin/items/b45636d64c271ebc409c
[^ 1]: Über sanitize_custom_scope_booleans (Ransack-Beamter) https://github.com/activerecord-hackery/ransack#using-scopesclass-methods
[^ 2]: Inhalt von BOOLEAN_VALUES (Durchsuchungsbeamter) https://github.com/activerecord-hackery/ransack/blob/c9cc20de9e0f7bab92e0579c85bed64d614d23de/lib/ransack/constants.rb#L26
[^ 3]: Auftauen nicht möglich (Ruby-Beamter) https://ruby-doc.org/core-2.6.6/Object.html#method-i-freeze
Recommended Posts