Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Join MultiSelect不传递多个值_Join_Ruby On Rails 4_Multi Select - Fatal编程技术网

Join MultiSelect不传递多个值

Join MultiSelect不传递多个值,join,ruby-on-rails-4,multi-select,Join,Ruby On Rails 4,Multi Select,我有一个应用程序,允许用户上传一个创意并将其分配到多个星期 周模型 创新模式 创意周[加入表格] 我知道该协会的工作原理,它允许我基于我的控制台发布一份多周的创意报告: 2.0.0p353 :020 > c = Creative.first Creative Load (0.2ms) SELECT "creatives".* FROM "creatives" ORDER BY "creatives"."id" ASC LIMIT 1 => #<Creative

我有一个应用程序,允许用户上传一个创意并将其分配到多个星期

周模型

创新模式

创意周[加入表格]

我知道该协会的工作原理,它允许我基于我的控制台发布一份多周的创意报告:

 2.0.0p353 :020 > c = Creative.first
   Creative Load (0.2ms)  SELECT "creatives".* FROM "creatives" ORDER BY "creatives"."id" ASC LIMIT 1
    => #<Creative id: 10, name: "", account_id: 1, week_id: nil, campaign_id: 1, image:       "Quakes_2013_DigiOOH_40YR_704x496.jpg", created_at: "2014-02-20 18:13:47", u
    pdated_at: "2014-02-20 18:13:47"> 
 2.0.0p353 :021 > c.week_ids
    (0.2ms)  SELECT "weeks".id FROM "weeks" INNER JOIN "creative_weeks" ON "weeks"."id" =    "creative_weeks"."week_id" WHERE "creative_weeks"."creative_id" = ?  [["
    creative_id", 10]]
    => [3] 
2.0.0p353 :022 > c.week_ids = [1, 2, 3]
   Week Load (0.2ms)  SELECT "weeks".* FROM "weeks" WHERE "weeks"."id" IN (1, 2, 3)
   Week Load (0.1ms)  SELECT "weeks".* FROM "weeks" INNER JOIN "creative_weeks" ON "weeks"."id" = "creative_weeks"."week_id" WHERE "creative_weeks"."creative_id" 
   = ?  [["creative_id", 10]]
(0.1ms)  begin transaction
SQL (0.3ms)  INSERT INTO "creative_weeks" ("created_at", "creative_id", "updated_at", "week_id")  VALUES (?, ?, ?, ?)  [["created_at", Thu, 20 Feb 2014 18:20:27
UTC +00:00], ["creative_id", 10], ["updated_at", Thu, 20 Feb 2014 18:20:27 UTC +00:00],   ["week_id", 1]]
SQL (0.1ms)  INSERT INTO "creative_weeks" ("created_at", "creative_id", "updated_at", "week_id")    VALUES (?, ?, ?, ?)  [["created_at", Thu, 20 Feb 2014 18:20:27
UTC +00:00], ["creative_id", 10], ["updated_at", Thu, 20 Feb 2014 18:20:27 UTC +00:00],   ["week_id", 2]]
(1.0ms)  commit transaction
  => [1, 2, 3] 
2.0.0p353 :023 > 
我遇到的问题是如何在前端使用相同的功能。它将只传入一个值,通常是最后选择的值

以我的名义:

谁能告诉我我错过了什么


TIA将选择标签的名称更改为:

name: 'creative[week_ids][]'
名称末尾的额外“[]”指定要发布一个值数组

使用强参数时,必须指定值为数组:

def your_strong_params
  params.require(:creative).permit(week_ids: [])
end

不幸的是,我已经试过了。当我添加额外的括号时,它将不允许发布任何记录。我正在使用Rails 4,目前许可证部分有:week_id。你认为我还需要做些什么才能让阵列通过吗?在答案中添加了这一点。注意!我知道这是阻止多个记录提交的原因。谢谢
 2.0.0p353 :020 > c = Creative.first
   Creative Load (0.2ms)  SELECT "creatives".* FROM "creatives" ORDER BY "creatives"."id" ASC LIMIT 1
    => #<Creative id: 10, name: "", account_id: 1, week_id: nil, campaign_id: 1, image:       "Quakes_2013_DigiOOH_40YR_704x496.jpg", created_at: "2014-02-20 18:13:47", u
    pdated_at: "2014-02-20 18:13:47"> 
 2.0.0p353 :021 > c.week_ids
    (0.2ms)  SELECT "weeks".id FROM "weeks" INNER JOIN "creative_weeks" ON "weeks"."id" =    "creative_weeks"."week_id" WHERE "creative_weeks"."creative_id" = ?  [["
    creative_id", 10]]
    => [3] 
2.0.0p353 :022 > c.week_ids = [1, 2, 3]
   Week Load (0.2ms)  SELECT "weeks".* FROM "weeks" WHERE "weeks"."id" IN (1, 2, 3)
   Week Load (0.1ms)  SELECT "weeks".* FROM "weeks" INNER JOIN "creative_weeks" ON "weeks"."id" = "creative_weeks"."week_id" WHERE "creative_weeks"."creative_id" 
   = ?  [["creative_id", 10]]
(0.1ms)  begin transaction
SQL (0.3ms)  INSERT INTO "creative_weeks" ("created_at", "creative_id", "updated_at", "week_id")  VALUES (?, ?, ?, ?)  [["created_at", Thu, 20 Feb 2014 18:20:27
UTC +00:00], ["creative_id", 10], ["updated_at", Thu, 20 Feb 2014 18:20:27 UTC +00:00],   ["week_id", 1]]
SQL (0.1ms)  INSERT INTO "creative_weeks" ("created_at", "creative_id", "updated_at", "week_id")    VALUES (?, ?, ?, ?)  [["created_at", Thu, 20 Feb 2014 18:20:27
UTC +00:00], ["creative_id", 10], ["updated_at", Thu, 20 Feb 2014 18:20:27 UTC +00:00],   ["week_id", 2]]
(1.0ms)  commit transaction
  => [1, 2, 3] 
2.0.0p353 :023 > 
<div class="field">
<%= f.collection_select(:week_ids, Week.all, :id, :start_at, {}, multiple: true, name: 'creative[week_ids]') %>
</div> 
name: 'creative[week_ids][]'
def your_strong_params
  params.require(:creative).permit(week_ids: [])
end