I have a form which has checkboxes, trix editor, radio button and text fields. When I edit the record in admin interface, form is shown with all text fields. Am not able to see trix editor, checkboxes and radio buttons.
I know as: :radio
and as: :check_boxes
and as: :trix_editor
should work but they are not getting pre populated with already saved values
Here is my jobposting.rb file.
Any help will be really appreciated.
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
and the form appears like this
Its not showing the fields(description, how to apply) which should have trix editor. For radio(Job Type) and check box(Categories) fields its showing simple yes and no..where as the actual values for these fields are these
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)
This is my views/job_postings/_form.html.erb
if you check the categories field its not coming from any table am having an array and iterating through it.
<%= 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 %>
Solved
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