Die Hardware verwendet MacBook Air und die Entwicklungsumgebung verwendet VScode. ruby2.6.5 rails6.0.3.2
Als ich "Administrate" für das Administrator-Gem und "Refile" für das Image-Lese-Gem auf Rails6 verwendet habe, war ich süchtig nach der Zusammenarbeit zwischen "Administrate" und "Refile", daher werde ich die Details und die Lösung vorstellen.
Übrigens hat administrate_field_refile Rails6 nicht unterstützt, also habe ich mein Bestes versucht, es nicht zu verwenden!
Wenn ich zu localhost: 3000 / admin gehe und versuche, einen neuen Benutzer zu erstellen, ist der Teil profile_image ein Textfeld. (Unten im zweiten Bild)
Um dies zu lösen, scheint es ein Juwel namens administrate_field_refile zu geben, als ich verschiedene Dinge recherchierte. Da dies jedoch nicht mit Rails6 kompatibel war, habe ich mich entschlossen, die Verwaltung anzupassen.
Lassen Sie uns zunächst den Code in administrate anzeigen, den Teil, der lokal angepasst wird. Lesen Sie Dokumentation verwalten und fügen Sie Dashbord-Controller, Ansichten und Felder hinzu.
$ rails generate administrate:dashboard User
$ rails generate administrate:views User
$ rails generate administrate:field refile
Schreiben Sie als Nächstes die profile_image_id: Field :: String von dashbord wie folgt um. Referenz: http://administrate-prototype.herokuapp.com/adding_custom_field_types
app/dashboards/user_dashboard.rb
ATTRIBUTE_TYPES = {
~Kürzung~
profile_image_id: RefileField,
}.freeze
Ändern Sie dann die Ansichten des Formulars aus dem Textfeld in Datei auswählen.
:app/views/fields/refile_field/_form.html.erb
<div class="field-unit__label">
<%= f.label field.attribute %>
</div>
<div class="field-unit__field">
<%= f.attachment_field :profile_image, direct: field.direct, presigned: field.presigned, multiple: field.multiple %>
</div>
Schreiben Sie dann app / fields / refile_field.rb wie folgt neu:
app/fields/refile_field.rb
require "administrate/field/base"
class RefileField < Administrate::Field::Base
def to_s
data
end
def direct
options.fetch(:direct, false)
end
def presigned
options.fetch(:presigned, false)
end
def multiple
options.fetch(:multiple, false)
end
end
Wenn dies unverändert bleibt, wird der rote Text "Unzulässige Parameter:" auf der Konsole angezeigt, und ich denke, dass das Bild nicht eingestellt werden kann. Lassen Sie es daher unten zu. (Geben Sie in ~~~ das zu registrierende Element ein. Wenn es eine Auslassung gibt, wird es im Terminal rot angezeigt. Überprüfen Sie es daher und fügen Sie es jedes Mal hinzu.)
python
def resource_params
params.require(:user).permit(:profile_image,:~~~,:~~~,:~~~)
end
Möglicherweise können Sie so Bilddaten von der Verwaltung registrieren.
Wenn Sie ein Passwort festlegen oder den Registrierungsbildschirm besser sehen möchten, lesen Sie bitte die folgenden Informationen. http://blog.319ring.net/2016/05/14/custom_view_administrate/
Wenn Sie es nützlich finden, klicken Sie bitte auf die LGTM-Schaltfläche: raise_hand_tone1:
Recommended Posts