Ich habe eine raffinercms-App, auf der die Community-Blog-Engine installiert ist. Ich möchte ein Bildfeld zur blog_post hinzufügen, damit ich ein Hauptbild für den Beitrag auswählen und in meinen Ansichten anzeigen kann.
Ich habe versucht, ein Bildfeld hinzuzufügen, keine Freude. Dann habe ich eine meiner anderen benutzerdefinierten Engines mit einem Bildfeld angeschaut und mit image_id eine Verknüpfung zur Hauptbildtabelle erstellt. Daher habe ich versucht, ein image_id-Feld hinzuzufügen und das blog_post-Modell so zu bearbeiten, dass es die selbe Zeile "gehört" enthält Seite für die Blog-Ladevorgänge bearbeiten, und die Bildauswahl funktioniert teilweise, aber wenn ich auf "Speichern" klicke, sieht es so aus, als ob nichts an meinen Tisch gesendet wird.
Eine Sache, die mich betrifft, ist, als ich meine benutzerdefinierte Engine mit dem Bildfeld erstellt habe, habe ich es als Feldtypbild angegeben. Dies scheint das image_id-Feld am Backend erstellt zu haben und alles einzurichten, so dass ich immer noch auf eine Bildklasse verweisen kann. Das Hinzufügen eines Bildfeldes zum Blog hat das nicht getan, sondern nur einen Feldtyp namens image erstellt. Bei der Überprüfung der Tabellen für meine benutzerdefinierte Engine gibt es keinen Feldtyp namens image. Daher gibt es eine Transformationszauberei, die ich nicht neu erstellen kann.
Momentan habe ich den folgenden Code:
Diese Migration wurde erstellt:
%Vor%Dem Blogpostmodell hinzugefügt:
%Vor%und habe dies in der Ansicht:
%Vor%Die benutzerdefinierte Engine bezieht sich nicht einmal auf das _id-Feld, daher weiß ich nicht, welche Links hier fehlen. Jede Hilfe würde sehr geschätzt werden. Es ist vielleicht überhaupt kein spezielles Problem von raffinerycms - ich bin neu bei Rails, also gibt es vielleicht ein paar Grundlagen, die hier fehlen.
Danke!
Für Schienen 3.2.3 und raffinerycms 2.0.0 funktioniert der Bleow-Code,
Erstellen Sie eine neue Migration:
%Vor%unter "Decorators / Raffinerie / Blog /" erstellen Sie eine Datei post_decorator.rb
füge die folgenden Zeilen hinzu,
%Vor%erzeugt die Raffinerie-Formulardatei:
%Vor%und fügen Sie den folgenden Code in "views / raffinerie / blog / admin / posts / _form.html.erb"
hinzu %Vor%Weitere Informationen finden Sie unter dem Link extending-models
So habe ich es am Ende gemacht (aber ich habe eine Feature-Anfrage gestellt;)):
Erstellen Sie eine neue Migration:
%Vor%Fügen Sie dies dem Blogpost.rb-Modell hinzu:
%Vor%Ändern Sie die Blog-Administrator-Formularansicht, um Folgendes hinzuzufügen:
%Vor%Du solltest gut sein, dann zu gehen! :)
Ich werde die Antwort für Schienen 4.x und Raffinerie 3.x
aktualisierenErstellen Sie eine neue Migration, indem Sie das neue image_id-Feld zum raffinerie_blog_posts-Modell hinzufügen:
%Vor%Führen Sie dann die Migration aus:
%Vor%Nun müssen Sie eine Datei im Verzeichnis Decorators / raffinerie / blog / mit dem folgenden Namen erstellen: post_decorator.rb und dann diesen Code in das Verzeichnis schreiben:
Wenn der Dekorator fertig ist, müssen Sie das neue image_id-Feld zu den erlaubten Parametern wie folgt hinzufügen:
Nach dem oben Gesagten wird nur noch das neue image_id-Feld zum Formular hinzugefügt, um in diesem Fall ein Bild zum Beitrag hinzufügen zu können:
Nun sind Sie fertig und können nach diesem Schritt jedem Raffineriemodell ein beliebiges Feld hinzufügen, wie in diesem Fall ein Post.
Ich hoffe, es hilft:)
Tags und Links ruby-on-rails model refinerycms