У меня есть ряд флажков на моем blog/_form.html.erb
, которые с помощью Javascript / JQuery обновляют hidden_field_tag
для :subcategory_ids
.
Скрытое поле выглядит так:
<%= f.hidden_field :subcategory_ids %>
И в соответствии с инспектором кода Google значение обновляется:
<input type="hidden" value="1,5,6" name="blog[subcategory_ids]" id="blog_subcategory_ids">
У меня есть следующая структура blog
в моем schema.rb
:
create_table "blogs", force: :cascade do |t|
t.string "title"
t.string "teaser"
t.text "body"
t.boolean "motivation", default: false
t.boolean "mindset", default: false
t.boolean "resourcing", default: false
t.boolean "planning", default: false
t.boolean "time_management", default: false
t.boolean "discipline", default: false
t.string "image_url"
t.text "pinterest_description"
t.boolean "published", default: false
t.datetime "published_at"
t.boolean "approved", default: false
t.boolean "featured", default: false
t.bigint "user_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "primary_category"
t.bigint "resource_id"
t.string "subcategory_ids", array: true
t.index ["resource_id"], name: "index_blogs_on_resource_id"
t.index ["user_id"], name: "index_blogs_on_user_id"
end
И следующие параметрыв моем blogs_controller.rb
:
def blog_params
params.require(:blog).permit(
:title,
:teaser,
:body,
:primary_category,
:motivation,
:mindset,
:resourcing,
:planning,
:time_management,
:discipline,
:image_url,
:pinterest_description,
:published,
:published_at,
:featured,
:approved,
:resource_id,
:user_id,
:pins => [],
:subcategory_ids => []
)
end
Однако, мой subcategory_ids
, похоже, не сохраняет из-за ошибки unpermitted parameter: :subcategory_ids
на моем сервере:
Started PATCH "/blogs/1" for ::1 at 2019-11-08 21:33:43 -0800
Processing by BlogsController#update as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"VDXdyzAYmVngd5at8QE4JIe09PeEuMi6+p99AFX8nv2iO3qIXGUEDId1jnGyRXR3h8vXLVjG/EUuGtHFxAt03A==", "blog"=>{"title"=>"Test Blog the First", "teaser"=>"Teaser Goes Here. Yes, all the things. Yes indeed-e-o. Words are being typed. By me.", "image_url"=>"https://sixkeyskills.s3-us-west-1.amazonaws.com/woman-arms-up-ocean.jpg", "body"=>"<p data-bind=\"text: generatedIpsum\">Blog text</p>", "primary_category"=>"General", "motivation"=>"1", "mindset"=>"1", "resourcing"=>"0", "planning"=>"0", "time_management"=>"0", "discipline"=>"0", "subcategory_ids"=>"1,5,6", "pinterest_description"=>"", "published_at"=>"2019-11-07 00:00:00 UTC", "published"=>"1", "approved"=>"1", "featured"=>"0", "resource_id"=>""}, "commit"=>"Save", "id"=>"1"}
Blog Load (0.3ms) SELECT "blogs".* FROM "blogs" WHERE "blogs"."id" = $1 LIMIT $2 [["id", 1], ["LIMIT", 1]]
↳ app/controllers/blogs_controller.rb:112
User Load (0.3ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 ORDER BY "users"."id" ASC LIMIT $2 [["id", 1], ["LIMIT", 1]]
↳ app/controllers/blogs_controller.rb:103
(41.0ms) SELECT "subcategories"."id" FROM "subcategories" INNER JOIN "blog_categorizations" ON "subcategories"."id" = "blog_categorizations"."subcategory_id" WHERE "blog_categorizations"."blog_id" = $1 [["blog_id", 1]]
↳ app/controllers/blogs_controller.rb:73
Unpermitted parameter: :subcategory_ids
(0.1ms) BEGIN
↳ app/controllers/blogs_controller.rb:82
User Load (0.3ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2 [["id", 1], ["LIMIT", 1]]
↳ app/controllers/blogs_controller.rb:82
(0.2ms) COMMIT
↳ app/controllers/blogs_controller.rb:82
Этостранно, потому что он показывает, что отредактированный блог имеет subcategory_ids
, но потом говорит, что это недопустимый параметр.
Я перезапустил свой сервер, но безрезультатно. Кто-нибудь может понять, почему происходит эта ошибка или почему она не сохраняется?