1

Ich habe ein Formular, das Kontrollkästchen, Trix-Editor, Optionsfeld und Textfelder hat. Wenn ich den Datensatz in der Admin-Oberfläche bearbeite, wird das Formular mit allen Textfeldern angezeigt. Ich bin nicht in der Lage, Trix-Editor, Kontrollkästchen und Optionsfelder zu sehen.Edit Formular Kontrollkästchen, Radio und Trix-Editor nicht vorbefüllt in ActiveAdmin

Ich weiß as: :radio und as: :check_boxes und as: :trix_editor arbeiten sollen, aber sie sind nicht vor mit bereits gespeicherten Werten

Hier Datei meiner jobposting.rb bevölkert bekommen.

Jede Hilfe wird wirklich geschätzt.

form do |f| 
    f.inputs "New Job Posting" do 
     f.input :title 
     f.input :description, as: :trix_editor 
     f.input :how_to_apply, as: :trix_editor 
     f.input :job_type, as: :radio 
     f.input :city 
     f.input :user_id 
     f.input :categories, as: :check_boxes 

     f.input :publish 


    end 
    f.actions 
    end 

und die Form scheint wie folgt

enter image description here

Es ist nicht die Felder zeigt (Beschreibung, wie anwenden), die Trix-Editor haben sollte. Für Radio (Jobtyp) und das Kontrollkästchen (Kategorien) Felder seine zeigt einfach ja und no..where als die tatsächlichen Werte für diese Felder sind diese enter image description here

EDITED

Started GET "/admin/job_postings/3/edit" for ::1 at 2017-02-11 12:41:22 +0530 
Processing by Admin::JobPostingsController#edit as HTML 
    Parameters: {"id"=>"3"} 
    AdminUser Load (0.4ms) SELECT "admin_users".* FROM "admin_users" WHERE "admin_users"."id" = $1 ORDER BY "admin_users"."id" ASC LIMIT 1 [["id", 1]] 
    JobPosting Load (0.3ms) SELECT "job_postings".* FROM "job_postings" WHERE "job_postings"."id" = $1 LIMIT 1 [["id", 3]] 
    CACHE (0.0ms) SELECT "job_postings".* FROM "job_postings" WHERE "job_postings"."id" = $1 LIMIT 1 [["id", "3"]] 
    Rendered /Users/KrishnaTeja/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/activeadmin-2bb5021f81c2/app/views/active_admin/resource/edit.html.arb (270.1ms) 
Completed 500 Internal Server Error in 367ms (ActiveRecord: 7.4ms) 

ActionView::Template::Error (undefined method `categories' for #<Class:0x007ffdd084e420>): 
    1: insert_tag renderer_for(:edit) 
    app/admin/job_postings.rb:26:in `block (3 levels) in <top (required)>' 
    app/admin/job_postings.rb:18:in `block (2 levels) in <top (required)>' 


    Rendered /Users/KrishnaTeja/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/templates/rescues/_source.erb (16.6ms) 
    Rendered /Users/KrishnaTeja/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (7.9ms) 
    Rendered /Users/KrishnaTeja/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (1.8ms) 
    Rendered /Users/KrishnaTeja/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/templates/rescues/template_error.html.erb within rescues/layout (115.2ms) 

enter image description hereenter image description here

das ist mein views/job_postings/_form.html.erb , wenn Sie die Kategorie überprüfen s Feld ist nicht von einer Tabelle kommt, habe ein Array und durchläuft es.

<%= form_for @job_posting do |f| %> 
<% if @job_posting.errors.any? %> 
     <div id="errors"> 
      <h2><%= pluralize(@job_posting.errors.count, "error") %> prevented this post from saving:</h2> 
      <ul> 
       <% @job_posting.errors.full_messages.each do |msg| %> 
        <li><%= msg %></li> 
       <% end %> 
      </ul> 
     </div> 
    <% end %> 

<p> 
    <%= f.label :title %> 
    <%= f.text_field :title %> 
</p> 

<p> 
    <%= f.label :description %> 

    <%= f.trix_editor :description %> 

</p> 
<p> 
    <%= f.label :how_to_apply %> 
    <%= f.trix_editor :how_to_apply %> 
</p> 
<p> 
    <%= f.label :categories %> 

    <% [ 'Front End', 'Back End', 'Others'].each do |category| %> 
     <%= label_tag "job_posting_categories_#{category}", category %> 

     <%= check_box_tag "job_posting[categories][]", category, checked(category), id: "job_posting_categories_#{category}" %> 


    <% end %> 

</p> 
<p> 
    <%= f.label :job_type %> 
    <% [ 'FullTime', 'Contract', 'PartTime', 'Freelance', 'Intern'].each do |job_type| %> 
     <%= f.radio_button 'job_type', job_type %> 
      <%= job_type.humanize %> 
    <% end %> 

</p> 
<p> 
    <%= f.label :city %> 
    <%= f.text_field :city %> 
</p> 
    <%= f.submit "Post Job" %> 


<% end %> 
+0

Könnten Sie bitte den Code mit dem 'check_bo Post xes' und 'radio' und solche da drin, denn wie Sie es jetzt gepostet haben, funktioniert das, was gerendert wird, perfekt. Wir müssen den Code sehen, wie Sie es wollen, und der resultierende Screenshot – LBarry

+0

@LBarry Ich habe weitere Informationen hinzugefügt. Tut mir leid, dass ich nicht genau bin. –

+0

@KrishnaTejaKarnam: Wir bevorzugen Antworten, um hier in die Antwortbox zu gehen.Würden Sie es in eine Selbstantwort kopieren und dann Ihre Frage auf den letzten Stand zurücksetzen, bevor Sie die Lösung hinzufügen? Vielen Dank. – halfer

Antwort

1

Gelöst

ActiveAdmin.register JobPosting do 

# See permitted parameters documentation: 
# https://github.com/activeadmin/activeadmin/blob/master/docs/2-resource-customization.md#setting-up-strong-parameters 
# 
permit_params :title, :description,:how_to_apply, :job_type ,:city,:user_id,{ categories: []}, :publish 
# 
# or 
# 
# permit_params do 
# permitted = [:permitted, :attributes] 
# permitted << :other if params[:action] == 'create' && current_user.admin? 
# permitted 
# end 


form do |f| 
    inputs "New Job Posting" do 

     input :title 
     input :description 
     input :how_to_apply 
     input :job_type, as: :radio, collection: [ 'FullTime', 'Contract', 'PartTime', 'Freelance', 'Intern'] 
     input :city 
     input :user, member_label: :email 
     input :categories, as: :check_boxes, collection: ['Front End','Back End','Others'].map { |e| [e, e,{checked: f.object.categories.include?(e)}] } 

     input :publish 


    end 
    actions 
    end 


end 
0

Es scheint, dass trix_editor mit activeadmin nicht kompatibel ist, so bin ich nicht sicher, ob Sie das überhaupt nutzen können. Für die anderen müssen Sie eine Sammlung hinzufügen, damit sie angezeigt wird, ansonsten scheint sie standardmäßig auf Ja/Nein-Felder zu setzen. So etwas wie folgt aus:

f.input :categories, as: :check_boxes, collection: f.object.categories 

Das aktive Admin lassen sollten wissen, dass Sie die Möglichkeiten, die Kategorien verwenden möchten die Kontrollkästchen zu füllen.

EDITED:

dieses Versuchen Sie stattdessen:

form do |f| 
    inputs "New Job Posting" do 
     input :title 
     input :description 
     input :how_to_apply 
     input :job_type, as: :radio 
     input :city 
     input :user_id 
     input :categories, as: :check_boxes, collection: f.object.categories 
     input :publish 
    end 
    actions 
    end 

oder sogar:

form do |f| 
    inputs "New Job Posting" do 
     input :title 
     input :description 
     input :how_to_apply 
     input :job_type, as: :radio 
     input :city 
     input :user_id 
     input :categories, as: :check_boxes, collection: JobPosting.categories 
     input :publish 
    end 
    actions 
    end 
+0

Ich habe diese 'f.input: Kategorien, als:: check_boxes, Sammlung: f.object.categories' und ich bekomme diesen Fehler' undefined Methode "Karte" für "[\" Front End \ ", \" Back End \ "]": String 'sieht wie etwas aus, das mit Typ-Casting zu tun hat. Ich weiß nicht, ob es eine dumme Sache fehlt. –

+0

Sie werden wahrscheinlich das 'f' aus der Sammlung entfernen müssen, verwenden Sie stattdessen' collection: object.categories' – LBarry

+0

selbst dann bekomme ich den gleichen Fehler 'undefined Methode" map "für" [\ "Front End \", \ "Back End \"] ": String' –

Verwandte Themen