Si l'argument passé à scope
exécuté par ransackable_scopes
est la valeur suivante
ArgumentError wrong number of arguments (given 0, expected 1)
Soyez prudent car cela se produira! !! !!
"true"
, "TRUE"
, "t"
, "T"
, 1
, "1"
"false"
,"FALSE"
,"f"
,"F"
,0
,"0"
Ces valeurs sont ** implicitement converties ** en True et False, respectivement, et ne peuvent pas être passées comme arguments.
config/initializers/ransack.rb
Ransack.configure do |config|
config.sanitize_custom_scope_booleans = false
end
Ajoutez simplement ceci et vous pourrez passer toutes les valeurs ci-dessus **. [^ 1]
** Veuillez abandonner. ** **
La valeur implicitement convertie est Ransack :: Constants :: BOOLEAN_VALUES
Défini dans [^ 2].
Cette constante est «gel».
Selon le fonctionnaire, il n'y a aucun moyen de ** dégeler ** un objet freeze
. [^ 3]
There is no way to unfreeze a frozen object.
J'ai fait beaucoup de recherches sur la personnalisation des valeurs à convertir, mais je n'ai pas pu. .. .. Pour le moment, PR du contenu "J'ai rendu possible la personnalisation de la valeur à convertir implicitement!" a été fusionné. .. Selon cela, il semble que vous puissiez personnaliser la valeur à convertir comme suit.
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
** Cependant, l'erreur suivante s'est produite même si je l'ai écrite telle quelle. ** **
=> NoMethodError: undefined method `truthy_values_to_convert_in_custom_scopes' for Ransack:Module
**Quoi! ?? !! ?? !! ?? !! ?? !! ?? !! ?? !! ?? !! ?? !! ?? !! ?? !! ?? !! ?? ** ** J'ai vérifié contenu de l'implémentation PR, mais le contenu tel que décrit dans l'aperçu n'a pas été implémenté. .. .. .. S'il vous plaît laissez-moi savoir si quelqu'un sait ici. .. ..
De plus, @t_oginogin a suggéré une solution qui n'utilise pas Ransack, veuillez donc vous y référer en fonction de l'état de votre implémentation. https://qiita.com/t_oginogin/items/b45636d64c271ebc409c
[^ 1]: À propos de sanitize_custom_scope_booleans (officiel de Ransack) https://github.com/activerecord-hackery/ransack#using-scopesclass-methods
[^ 2]: Contenu de BOOLEAN_VALUES (Ransack officiel) https://github.com/activerecord-hackery/ransack/blob/c9cc20de9e0f7bab92e0579c85bed64d614d23de/lib/ransack/constants.rb#L26
[^ 3]: Libération impossible (Ruby officiel) https://ruby-doc.org/core-2.6.6/Object.html#method-i-freeze
Recommended Posts